home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / mig / out.E < prev    next >
Text File  |  1990-07-16  |  56KB  |  9,852 lines

  1. # 1 "Mig_GetAllInfo.c"
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18. static char rcsid[] = "$Header: /sprite/src/lib/c/mig/RCS/Mig_GetAllInfo.c,v 2.1 90/06/22 14:58:21 douglis Exp $ SPRITE (Berkeley)";
  19.  
  20.  
  21.  
  22. # 1 "/sprite/lib/include/sprite.h" 1
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56. typedef int Boolean;
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63. typedef int  ReturnStatus;
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96. typedef char *Address;
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105. typedef int *ClientData;
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117. # 21 "Mig_GetAllInfo.c" 2
  118.  
  119. # 1 "/sprite/lib/include/stdio.h" 1
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205. typedef struct _file {
  206.     unsigned char *lastAccess;     
  207.  
  208.  
  209.     int readCount;         
  210.  
  211.  
  212.     int writeCount;         
  213.  
  214.  
  215.  
  216.  
  217.  
  218.     unsigned char *buffer;     
  219.  
  220.     int bufSize;         
  221.  
  222.  
  223.     void (*readProc)();         
  224.     void (*writeProc)();     
  225.     int (*closeProc)();         
  226.  
  227.     ClientData clientData;     
  228.  
  229.  
  230.     int status;             
  231.  
  232.  
  233.     int flags;             
  234.  
  235.     struct _file *nextPtr;     
  236.  
  237.  
  238.  
  239.  
  240. } FILE;
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353. extern FILE stdioInFile, stdioOutFile, stdioErrFile;
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388. extern void    clearerr();
  389. extern int    fclose();
  390. extern FILE *    fdopen();
  391. extern int    fflush();
  392. extern int    fgetc();
  393. extern char *    fgets();
  394. extern int    fileno();
  395. extern FILE *    fopen();
  396. extern int    fprintf();
  397. extern int    fputc();
  398. extern int    fputs();
  399. extern int    fread();
  400. extern FILE *    freopen();
  401. extern int    fscanf();
  402. extern long    fseek();
  403. extern long    ftell();
  404. extern int    fwrite();
  405. extern char *    gets();
  406. extern int    getw();
  407. extern void    perror();
  408. extern FILE *   popen();
  409. extern int      pclose();
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418. extern int    printf();
  419.  
  420. extern int    puts();
  421. extern int    putw();
  422. extern void    rewind();
  423. extern int    scanf();
  424. extern void    setbuf();
  425. extern void    setbuffer();
  426. extern void    setlinebuf();
  427. extern int    setvbuf();
  428. extern char *    sprintf();
  429. extern int    sscanf();
  430. extern FILE *    tmpfile();
  431. extern char *    tmpnam();
  432. extern char *    tempnam();
  433. extern int    ungetc();
  434. extern int    vfprintf();
  435. extern int    vfscanf();
  436. extern int    vprintf();
  437. extern char *    vsprintf();
  438. extern void    _cleanup();
  439.  
  440. extern void    Stdio_Setup();
  441.  
  442.  
  443. # 22 "Mig_GetAllInfo.c" 2
  444.  
  445. # 1 "/sprite/lib/include/mig.h" 1
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467. # 1 "/sprite/lib/include/fs.h" 1
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489. # 1 "/sprite/lib/include/spriteTime.h" 1
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520. typedef struct {
  521.     int    seconds;
  522.     int    microseconds;
  523. } Time;
  524.  
  525. typedef struct {
  526.     int year;
  527.     int month;
  528.     int dayOfYear;
  529.     int dayOfMonth;
  530.     int dayOfWeek;
  531.     int    hours;
  532.     int    minutes;
  533.     int    seconds;
  534.     int localOffset;
  535.     Boolean dst;
  536. } Time_Parts;
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559. extern Time time_ZeroSeconds;
  560. extern Time time_OneMicrosecond;
  561. extern Time time_OneMillisecond;
  562. extern Time time_TenMilliseconds;
  563. extern Time time_HundredMilliseconds;
  564. extern Time time_HalfSecond;
  565. extern Time time_OneSecond;
  566. extern Time time_TwoSeconds;
  567. extern Time time_TenSeconds;
  568. extern Time time_OneMinute;
  569. extern Time time_OneHour;
  570. extern Time time_OneDay;
  571. extern Time time_OneYear;
  572. extern Time time_OneLeapYear;
  573.  
  574.  
  575.  
  576.  
  577. extern void     Time_Add();
  578. extern void     Time_Subtract();
  579. extern void     Time_Multiply();
  580. extern void     Time_Divide();
  581. extern void     Time_Normalize();
  582. extern void    Time_ToAscii();
  583. extern void    Time_ToParts();
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632. # 22 "/sprite/lib/include/fs.h" 2
  633.  
  634. # 1 "/sprite/lib/include/proc.h" 1
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657. # 1 "/sprite/lib/include/spriteTime.h" 1
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674.  
  675. # 142 "/sprite/lib/include/spriteTime.h"
  676.  
  677. # 23 "/sprite/lib/include/proc.h" 2
  678.  
  679. # 1 "/sprite/lib/include/sig.h" 1
  680.  
  681.  
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725. typedef    struct {
  726.     int        action;
  727.     int        (*handler)();
  728.     int        sigHoldMask;
  729. } Sig_Action;
  730.  
  731.  
  732.  
  733.  
  734.  
  735.  
  736.  
  737.  
  738.  
  739.  
  740.  
  741.  
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800.  
  801.  
  802.  
  803.  
  804.  
  805.  
  806.  
  807.  
  808.  
  809.  
  810.  
  811.  
  812.  
  813.  
  814.  
  815.  
  816.  
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827. # 24 "/sprite/lib/include/proc.h" 2
  828.  
  829. # 1 "/sprite/lib/include/sun4.md/kernel/mach.h" 1
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856. # 1 "/sprite/lib/include/sun4.md/kernel/devAddrs.h" 1
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.  
  864.  
  865.  
  866.  
  867.  
  868.  
  869.  
  870.  
  871.  
  872.  
  873.  
  874.  
  875.  
  876.  
  877.  
  878.  
  879.  
  880.  
  881.  
  882.  
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893. # 27 "/sprite/lib/include/sun4.md/kernel/mach.h" 2
  894.  
  895. # 1 "/sprite/lib/include/sun4.md/kernel/machConst.h" 1
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918. # 1 "/sprite/lib/include/sun4.md/kernel/vmSunConst.h" 1
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961.  
  962.  
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.  
  999.  
  1000.  
  1001.  
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008. # 104 "/sprite/lib/include/sun4.md/kernel/vmSunConst.h"
  1009.  
  1010.  
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066.  
  1067.  
  1068.  
  1069.  
  1070.  
  1071.  
  1072.  
  1073.  
  1074.  
  1075.  
  1076.  
  1077.  
  1078.  
  1079.  
  1080.  
  1081.  
  1082.  
  1083.  
  1084.  
  1085.  
  1086.  
  1087.  
  1088.  
  1089.  
  1090.  
  1091.  
  1092.  
  1093.  
  1094.  
  1095.  
  1096.  
  1097.  
  1098.  
  1099.  
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.                          
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.  
  1130.  
  1131.  
  1132.  
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139.  
  1140.  
  1141.  
  1142.  
  1143.  
  1144.  
  1145.  
  1146.  
  1147.  
  1148.  
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186. # 291 "/sprite/lib/include/sun4.md/kernel/vmSunConst.h"
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.  
  1193.  
  1194.  
  1195.  
  1196.  
  1197.  
  1198.  
  1199.  
  1200.  
  1201.  
  1202.  
  1203.  
  1204.  
  1205.  
  1206.  
  1207.  
  1208.  
  1209.  
  1210.  
  1211.  
  1212.  
  1213.  
  1214.  
  1215.  
  1216.  
  1217.  
  1218.  
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.  
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  
  1261.  
  1262.  
  1263.  
  1264.  
  1265.  
  1266.  
  1267.  
  1268.  
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303.  
  1304.  
  1305.  
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  
  1311.  
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.  
  1325.  
  1326.  
  1327.  
  1328.  
  1329.  
  1330.  
  1331.  
  1332.  
  1333.  
  1334.  
  1335.  
  1336.  
  1337.  
  1338.  
  1339.  
  1340.  
  1341.  
  1342.  
  1343.  
  1344.  
  1345.  
  1346.  
  1347.  
  1348.  
  1349.  
  1350.  
  1351.  
  1352.  
  1353.  
  1354.  
  1355.  
  1356.  
  1357.  
  1358.  
  1359.  
  1360.  
  1361.  
  1362.  
  1363.  
  1364.  
  1365.  
  1366.  
  1367.  
  1368.  
  1369.  
  1370.  
  1371.  
  1372.  
  1373. # 23 "/sprite/lib/include/sun4.md/kernel/machConst.h" 2
  1374.  
  1375. # 1 "/sprite/lib/include/kernel/sysSysCall.h" 1
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.  
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402.  
  1403.  
  1404.  
  1405.  
  1406.  
  1407.  
  1408.  
  1409.  
  1410.  
  1411.  
  1412.  
  1413.  
  1414.  
  1415.  
  1416.  
  1417.  
  1418.  
  1419.  
  1420.  
  1421.  
  1422.  
  1423.  
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  
  1457.  
  1458.  
  1459.  
  1460.  
  1461.  
  1462.  
  1463.  
  1464.  
  1465.  
  1466.  
  1467.  
  1468.  
  1469.  
  1470.  
  1471.  
  1472.  
  1473.  
  1474.  
  1475.  
  1476.  
  1477.  
  1478.  
  1479.  
  1480.  
  1481.  
  1482.  
  1483.  
  1484.  
  1485.  
  1486.  
  1487.  
  1488.  
  1489.  
  1490.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495.  
  1496.  
  1497.  
  1498.  
  1499.  
  1500.  
  1501.  
  1502.  
  1503. # 24 "/sprite/lib/include/sun4.md/kernel/machConst.h" 2
  1504.  
  1505. # 1 "/sprite/lib/include/kernel/sys.h" 1
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514.  
  1515.  
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522. # 1 "/sprite/lib/include/kernel/user/sys.h" 1
  1523.  
  1524.  
  1525.  
  1526.  
  1527.  
  1528.  
  1529.  
  1530.  
  1531.  
  1532.  
  1533.  
  1534.  
  1535.  
  1536.  
  1537.  
  1538.  
  1539.  
  1540.  
  1541.  
  1542.  
  1543.  
  1544.  
  1545.  
  1546.  
  1547.  
  1548. typedef enum {
  1549.     SYS_WARNING,
  1550.     SYS_FATAL
  1551. } Sys_PanicLevel;
  1552.  
  1553.  
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.  
  1576.  
  1577.  
  1578.  
  1579. typedef struct {
  1580.     int architecture;         
  1581.     int type;             
  1582.     int    processors;         
  1583. } Sys_MachineInfo;
  1584.  
  1585.  
  1586.  
  1587.  
  1588.  
  1589.  
  1590.  
  1591.  
  1592.  
  1593.  
  1594.  
  1595.  
  1596.  
  1597.  
  1598.  
  1599.  
  1600.  
  1601.  
  1602. extern ReturnStatus        Sys_GetMachineInfo();
  1603.  
  1604.  
  1605. # 17 "/sprite/lib/include/kernel/sys.h" 2
  1606.  
  1607. # 1 "/sprite/lib/include/sprite.h" 1
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624.  
  1625. # 94 "/sprite/lib/include/sprite.h"
  1626.  
  1627. # 18 "/sprite/lib/include/kernel/sys.h" 2
  1628.  
  1629. # 1 "/sprite/lib/include/status.h" 1
  1630.  
  1631.  
  1632.  
  1633.  
  1634.  
  1635.  
  1636.  
  1637.  
  1638.  
  1639.  
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.  
  1655.  
  1656.  
  1657.  
  1658.  
  1659.  
  1660.  
  1661.  
  1662.  
  1663.  
  1664.  
  1665.  
  1666.  
  1667.  
  1668.  
  1669.  
  1670. extern char *Stat_GetMsg();
  1671. extern char *Stat_GetPrivateMsg();
  1672. extern void Stat_PrintMsg();
  1673.  
  1674.  
  1675.  
  1676.  
  1677.  
  1678.  
  1679.  
  1680.  
  1681.  
  1682.  
  1683.  
  1684.  
  1685.  
  1686.  
  1687. extern ReturnStatus    stat_LastError;
  1688. extern void           Stat_SetErrorHandler();
  1689. extern void           Stat_SetErrorData();
  1690. extern void        Stat_GetErrorHandler();
  1691. extern ReturnStatus    Stat_Error();
  1692.  
  1693.  
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699. extern int        Compat_MapCode();
  1700. extern ReturnStatus    Compat_MapToSprite();
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.  
  1722.  
  1723.  
  1724.  
  1725.  
  1726.  
  1727.  
  1728.  
  1729.  
  1730.  
  1731.  
  1732.  
  1733.  
  1734.  
  1735.  
  1736.  
  1737.  
  1738.  
  1739.  
  1740.  
  1741.  
  1742.  
  1743.  
  1744.  
  1745.  
  1746.  
  1747.  
  1748.  
  1749.  
  1750.  
  1751.  
  1752.  
  1753.  
  1754.  
  1755.  
  1756.  
  1757.  
  1758.  
  1759.  
  1760.  
  1761.  
  1762.  
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.  
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789.  
  1790.  
  1791.  
  1792.  
  1793.  
  1794.  
  1795.  
  1796.  
  1797.  
  1798.  
  1799.  
  1800.  
  1801.  
  1802.  
  1803.  
  1804.  
  1805.  
  1806.  
  1807.  
  1808.  
  1809.  
  1810.  
  1811.  
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847. # 19 "/sprite/lib/include/kernel/sys.h" 2
  1848.  
  1849.  
  1850.  
  1851.  
  1852.  
  1853.  
  1854.  
  1855.  
  1856.  
  1857.  
  1858.  
  1859.  
  1860.  
  1861.  
  1862.  
  1863.  
  1864.  
  1865. # 51 "/sprite/lib/include/kernel/sys.h"
  1866.  
  1867.  
  1868.  
  1869.  
  1870.  
  1871.  
  1872.  
  1873. extern    ReturnStatus    Sys_GetTimeOfDay();
  1874. extern    ReturnStatus    Sys_SetTimeOfDay();
  1875. extern    ReturnStatus    Sys_DoNothing();
  1876. extern    ReturnStatus    Sys_Shutdown();
  1877. extern    ReturnStatus    Sys_GetMachineInfo();
  1878. extern    ReturnStatus    Sys_GetMachineInfoNew();
  1879.  
  1880.  
  1881.  
  1882. # 25 "/sprite/lib/include/sun4.md/kernel/machConst.h" 2
  1883.  
  1884. # 1 "/sprite/lib/include/status.h" 1
  1885.  
  1886.  
  1887.  
  1888.  
  1889.  
  1890.  
  1891.  
  1892.  
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.  
  1916. # 217 "/sprite/lib/include/status.h"
  1917.  
  1918. # 26 "/sprite/lib/include/sun4.md/kernel/machConst.h" 2
  1919.  
  1920.  
  1921.  
  1922.  
  1923.  
  1924.  
  1925.  
  1926.  
  1927.  
  1928.  
  1929.  
  1930.  
  1931.  
  1932.  
  1933.  
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.  
  1949.  
  1950.  
  1951.  
  1952.  
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962.  
  1963.  
  1964.  
  1965.  
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972.  
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978.  
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984.  
  1985.  
  1986.  
  1987.  
  1988.  
  1989.  
  1990.  
  1991.  
  1992.  
  1993.  
  1994.  
  1995.  
  1996.  
  1997.  
  1998.  
  1999.  
  2000.  
  2001.  
  2002.  
  2003.  
  2004.  
  2005.  
  2006.  
  2007.  
  2008.  
  2009.  
  2010.  
  2011.  
  2012.  
  2013.  
  2014.  
  2015.  
  2016.  
  2017.  
  2018.  
  2019.  
  2020.  
  2021.  
  2022.  
  2023.  
  2024.  
  2025.  
  2026.  
  2027.  
  2028.  
  2029.  
  2030.  
  2031.  
  2032.  
  2033.  
  2034.  
  2035.  
  2036.  
  2037.  
  2038.  
  2039.  
  2040.  
  2041.  
  2042.  
  2043.  
  2044.  
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.  
  2051.  
  2052.  
  2053.  
  2054.  
  2055.  
  2056.  
  2057.  
  2058.  
  2059.  
  2060.  
  2061.  
  2062.  
  2063.  
  2064.  
  2065.  
  2066.  
  2067.  
  2068.  
  2069.  
  2070.  
  2071.  
  2072.  
  2073.  
  2074.  
  2075.  
  2076.  
  2077.  
  2078.  
  2079.  
  2080.  
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086.  
  2087.  
  2088.  
  2089.  
  2090.  
  2091.  
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  
  2110.  
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116.  
  2117.  
  2118.  
  2119.  
  2120.  
  2121.  
  2122.  
  2123.  
  2124.  
  2125.  
  2126.  
  2127.  
  2128.  
  2129.  
  2130.  
  2131.  
  2132.  
  2133.  
  2134.  
  2135.  
  2136.  
  2137.  
  2138.  
  2139.  
  2140.  
  2141.  
  2142.  
  2143.  
  2144.  
  2145.  
  2146.  
  2147.  
  2148.  
  2149.  
  2150.  
  2151.  
  2152.  
  2153.  
  2154.  
  2155.  
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.  
  2162.  
  2163.  
  2164.  
  2165.  
  2166.  
  2167.  
  2168.  
  2169.  
  2170.  
  2171.  
  2172.  
  2173.  
  2174.  
  2175.  
  2176.  
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182.  
  2183.  
  2184.  
  2185.  
  2186.  
  2187.  
  2188.  
  2189.  
  2190.  
  2191.  
  2192.  
  2193.  
  2194.  
  2195.  
  2196.  
  2197.  
  2198.  
  2199.  
  2200.  
  2201.  
  2202.  
  2203.  
  2204.  
  2205.                          
  2206.  
  2207.  
  2208.  
  2209.  
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  
  2219.  
  2220.  
  2221.  
  2222.  
  2223.  
  2224.  
  2225.  
  2226.  
  2227.  
  2228.  
  2229.  
  2230.  
  2231.  
  2232.  
  2233.  
  2234.  
  2235.  
  2236.  
  2237.  
  2238.  
  2239.  
  2240.  
  2241.  
  2242.  
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.  
  2249.  
  2250.  
  2251.  
  2252.  
  2253.  
  2254.  
  2255.  
  2256.  
  2257.  
  2258.  
  2259.  
  2260.  
  2261.  
  2262.  
  2263.  
  2264.  
  2265.  
  2266.  
  2267.  
  2268.  
  2269.  
  2270.  
  2271.  
  2272.  
  2273.  
  2274.  
  2275.  
  2276.  
  2277.  
  2278.  
  2279.  
  2280.  
  2281.  
  2282.  
  2283.  
  2284.  
  2285.  
  2286.  
  2287.  
  2288.  
  2289.  
  2290.  
  2291.  
  2292.  
  2293.  
  2294.  
  2295.  
  2296.  
  2297.  
  2298.  
  2299.  
  2300.  
  2301.  
  2302.  
  2303.  
  2304.  
  2305.  
  2306.  
  2307.  
  2308.  
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314.  
  2315.  
  2316.  
  2317.  
  2318.  
  2319.  
  2320.  
  2321.  
  2322.  
  2323.  
  2324.  
  2325.  
  2326.  
  2327.  
  2328.  
  2329.  
  2330.  
  2331.  
  2332.  
  2333.  
  2334.  
  2335.  
  2336.  
  2337.  
  2338.  
  2339.  
  2340.  
  2341.  
  2342.  
  2343.  
  2344.  
  2345.  
  2346.  
  2347.  
  2348.  
  2349.  
  2350.  
  2351.  
  2352.  
  2353.  
  2354.  
  2355.  
  2356.  
  2357.  
  2358.  
  2359.  
  2360.  
  2361.  
  2362.  
  2363.  
  2364.  
  2365.  
  2366.  
  2367.  
  2368.  
  2369.  
  2370.  
  2371.  
  2372.  
  2373.  
  2374.  
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380.  
  2381.  
  2382.  
  2383.  
  2384.  
  2385.  
  2386.  
  2387.  
  2388.  
  2389.  
  2390.  
  2391.  
  2392.  
  2393.  
  2394.  
  2395.  
  2396.  
  2397.  
  2398.  
  2399.  
  2400.  
  2401.  
  2402.  
  2403.  
  2404.  
  2405.  
  2406.  
  2407.  
  2408.  
  2409.  
  2410.  
  2411.  
  2412.  
  2413.  
  2414.  
  2415.  
  2416. # 28 "/sprite/lib/include/sun4.md/kernel/mach.h" 2
  2417.  
  2418. # 1 "/sprite/lib/include/fmt.h" 1
  2419.  
  2420.  
  2421.  
  2422.  
  2423.  
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.  
  2430.  
  2431.  
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  
  2440.  
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  
  2447.  
  2448.  
  2449.  
  2450.  
  2451. typedef int Fmt_Format;
  2452.  
  2453.  
  2454.  
  2455.  
  2456.  
  2457.  
  2458.  
  2459.  
  2460.  
  2461.  
  2462.  
  2463.  
  2464.  
  2465.  
  2466.  
  2467.  
  2468.  
  2469.  
  2470.  
  2471.  
  2472.  
  2473.  
  2474.  
  2475.  
  2476.  
  2477.  
  2478.  
  2479.  
  2480.  
  2481.  
  2482.  
  2483.  
  2484.  
  2485. extern int    Fmt_Convert();
  2486. extern int    Fmt_Size();
  2487.  
  2488.  
  2489.  
  2490. # 29 "/sprite/lib/include/sun4.md/kernel/mach.h" 2
  2491.  
  2492.  
  2493.  
  2494.  
  2495.  
  2496.  
  2497. typedef enum {
  2498.     MACH_USER,
  2499.     MACH_KERNEL
  2500. } Mach_ProcessorStates;
  2501.  
  2502.  
  2503.  
  2504.  
  2505.  
  2506.  
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512.  
  2513.  
  2514.  
  2515.  
  2516.  
  2517.  
  2518.  
  2519.  
  2520.  
  2521.  
  2522.  
  2523.  
  2524.  
  2525.  
  2526.  
  2527.  
  2528.  
  2529.  
  2530.  
  2531.  
  2532.  
  2533.  
  2534.  
  2535.  
  2536.  
  2537.  
  2538.  
  2539. # 86 "/sprite/lib/include/sun4.md/kernel/mach.h"
  2540.  
  2541.  
  2542.  
  2543.  
  2544.  
  2545.  
  2546.  
  2547.  
  2548.  
  2549.  
  2550.  
  2551.  
  2552.  
  2553.  
  2554.  
  2555.  
  2556.  
  2557.  
  2558.  
  2559.  
  2560.  
  2561.  
  2562.  
  2563.  
  2564.  
  2565.  
  2566.  
  2567.  
  2568.  
  2569.  
  2570.  
  2571.  
  2572. extern ReturnStatus (*(mach_NormalHandlers[]))();
  2573. extern ReturnStatus (*(mach_MigratedHandlers[]))();
  2574.  
  2575.  
  2576.  
  2577.  
  2578.  
  2579.  
  2580.  
  2581.  
  2582.  
  2583.  
  2584.  
  2585.  
  2586.  
  2587.  
  2588.  
  2589.  
  2590. # 1 "/sprite/lib/include/sun4.md/kernel/machSig.h" 1
  2591.  
  2592.  
  2593.  
  2594.  
  2595.  
  2596.  
  2597.  
  2598.  
  2599.  
  2600.  
  2601.  
  2602.  
  2603.  
  2604.  
  2605.  
  2606.  
  2607.  
  2608.  
  2609.  
  2610.  
  2611.  
  2612.  
  2613.  
  2614.  
  2615.  
  2616. # 1 "/sprite/lib/include/sun4.md/kernel/machConst.h" 1
  2617.  
  2618.  
  2619.  
  2620.  
  2621.  
  2622.  
  2623.  
  2624.  
  2625.  
  2626.  
  2627.  
  2628.  
  2629. # 522 "/sprite/lib/include/sun4.md/kernel/machConst.h"
  2630.  
  2631. # 26 "/sprite/lib/include/sun4.md/kernel/machSig.h" 2
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.  
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.  
  2645.  
  2646.  
  2647.  
  2648.  
  2649.  
  2650.  
  2651.  
  2652.  
  2653.  
  2654.  
  2655.  
  2656.  
  2657.  
  2658.  
  2659.  
  2660.  
  2661.  
  2662.  
  2663.  
  2664.  
  2665.  
  2666.  
  2667.  
  2668.  
  2669.  
  2670.  
  2671.  
  2672.  
  2673.  
  2674.  
  2675.  
  2676.  
  2677.  
  2678.  
  2679.  
  2680. typedef struct Mach_RegState {
  2681.     unsigned int    curPsr;                 
  2682.     unsigned int    pc;
  2683.     unsigned int    nextPc;
  2684.     unsigned int    tbr;
  2685.     unsigned int    y;
  2686.     unsigned int    safeTemp;
  2687.     unsigned int    volTemp1;
  2688.     unsigned int    volTemp2;
  2689.     unsigned int    ins[        8 ];         
  2690.                          
  2691.     unsigned int    calleeInputs[        8 ];
  2692.                              
  2693.     unsigned int    extraParams[(10  - 6) ];
  2694.     unsigned int    globals[    8 ];     
  2695.     unsigned int     fsr;   
  2696.  
  2697.     int   numQueueEntries;     
  2698.  
  2699.     unsigned int    fregs[        32 ];     
  2700.  
  2701.  
  2702.  
  2703.     struct {
  2704.     char          *address;       
  2705.     unsigned int instruction;  
  2706.     }  fqueue[16 ];   
  2707.  
  2708. } Mach_RegState;
  2709.  
  2710.  
  2711.  
  2712.  
  2713.  
  2714.  
  2715.  
  2716. typedef    struct    Mach_DebugState {
  2717.     unsigned int    curPsr;                 
  2718.     unsigned int    pc;
  2719.     unsigned int    nextPc;
  2720.     unsigned int    tbr;
  2721.     unsigned int    y;
  2722.     unsigned int    safeTemp;
  2723.     unsigned int    volTemp1;
  2724.     unsigned int    volTemp2;
  2725.     unsigned int    ins[        8 ];         
  2726.                          
  2727.     unsigned int    calleeInputs[        8 ];
  2728.                              
  2729.     unsigned int    extraParams[(10  - 6) ];
  2730.     unsigned int    globals[    8 ];     
  2731. } Mach_DebugState;
  2732.  
  2733.  
  2734.  
  2735.  
  2736.  
  2737. typedef struct Mach_SigContext {
  2738.     unsigned    int    trapInst;     
  2739.     Address    pcValue;         
  2740.     Mach_RegState    userState;     
  2741. } Mach_SigContext;
  2742.  
  2743.  
  2744. # 136 "/sprite/lib/include/sun4.md/kernel/mach.h" 2
  2745.  
  2746.  
  2747.  
  2748. typedef struct Mach_RegWindow {
  2749.      int locals[        8 ];
  2750.      int ins[        8 ];
  2751. } Mach_RegWindow;
  2752.  
  2753.  
  2754.  
  2755.  
  2756.  
  2757.  
  2758.  
  2759.  
  2760.  
  2761. # 1 "/sprite/lib/include/kernel/sig.h" 1
  2762.  
  2763.  
  2764.  
  2765.  
  2766.  
  2767.  
  2768.  
  2769.  
  2770.  
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776.  
  2777.  
  2778.  
  2779.  
  2780.  
  2781.  
  2782.  
  2783.  
  2784.  
  2785.  
  2786. # 1 "/sprite/lib/include/sig.h" 1
  2787.  
  2788.  
  2789.  
  2790.  
  2791.  
  2792.  
  2793.  
  2794.  
  2795.  
  2796.  
  2797.  
  2798.  
  2799.  
  2800.  
  2801.  
  2802.  
  2803.  
  2804.  
  2805. # 147 "/sprite/lib/include/sig.h"
  2806.  
  2807. # 25 "/sprite/lib/include/kernel/sig.h" 2
  2808.  
  2809. # 1 "/sprite/lib/include/sun4.md/kernel/mach.h" 1
  2810.  
  2811.  
  2812.  
  2813.  
  2814.  
  2815.  
  2816.  
  2817.  
  2818.  
  2819.  
  2820.  
  2821.  
  2822.  
  2823.  
  2824.  
  2825.  
  2826.  
  2827. # 325 "/sprite/lib/include/sun4.md/kernel/mach.h"
  2828.  
  2829. # 26 "/sprite/lib/include/kernel/sig.h" 2
  2830.  
  2831.  
  2832.  
  2833.  
  2834.  
  2835.  
  2836. typedef struct {
  2837.     int            oldHoldMask;     
  2838.  
  2839.  
  2840.     Mach_SigContext    machContext;     
  2841.  
  2842. } Sig_Context;
  2843.  
  2844.  
  2845.  
  2846.  
  2847. typedef struct {
  2848.     int        sigNum;         
  2849.     int        sigCode;         
  2850.     Sig_Context    *contextPtr;     
  2851.  
  2852. } Sig_Stack;
  2853.  
  2854.  
  2855.  
  2856.  
  2857.  
  2858.  
  2859.  
  2860.  
  2861.  
  2862.  
  2863.  
  2864.  
  2865.  
  2866.  
  2867.  
  2868.  
  2869.  
  2870.  
  2871.  
  2872.  
  2873.  
  2874.  
  2875.  
  2876.  
  2877. extern    ReturnStatus    Sig_Send();
  2878. extern    ReturnStatus     Sig_SendProc();
  2879. extern    ReturnStatus    Sig_UserSend();
  2880. extern    ReturnStatus    Sig_SetHoldMask();
  2881. extern    ReturnStatus    Sig_SetAction();
  2882. extern    ReturnStatus    Sig_Pause();
  2883.  
  2884. extern    void        Sig_Init();
  2885. extern    void        Sig_ProcInit();
  2886. extern    void        Sig_Fork();
  2887. extern    void        Sig_Exec();
  2888. extern    void        Sig_ChangeState();
  2889. extern    Boolean        Sig_Handle();
  2890. extern    void        Sig_CheckForKill();
  2891. extern    void        Sig_Return();
  2892.  
  2893.  
  2894.  
  2895.  
  2896.  
  2897. extern ReturnStatus    Sig_GetEncapSize();
  2898. extern ReturnStatus    Sig_EncapState();
  2899. extern ReturnStatus    Sig_DeencapState();
  2900. extern    void        Sig_AllowMigration();
  2901.  
  2902.  
  2903.  
  2904. # 152 "/sprite/lib/include/sun4.md/kernel/mach.h" 2
  2905.  
  2906.  
  2907.  
  2908.  
  2909.  
  2910.  
  2911. typedef struct Mach_State {
  2912.     Mach_RegState    *trapRegs;         
  2913.     Mach_RegState    *switchRegs;         
  2914.     int            savedRegs[    7    ][    (        8  +         8 ) ];
  2915.                          
  2916.  
  2917.  
  2918.  
  2919.  
  2920.  
  2921.  
  2922.  
  2923.  
  2924.     int            savedMask;         
  2925.  
  2926.  
  2927.  
  2928.  
  2929.     int            savedSps[    7    ];
  2930.                          
  2931.  
  2932.  
  2933.  
  2934.  
  2935.     Address        kernStackStart;         
  2936.  
  2937.     int            fpuStatus;         
  2938.     Sig_Stack        sigStack;         
  2939.  
  2940.     Sig_Context        sigContext;         
  2941.  
  2942.     int            lastSysCall;         
  2943. } Mach_State;
  2944.  
  2945.  
  2946.  
  2947.  
  2948.  
  2949.  
  2950.  
  2951.  
  2952.  
  2953.  
  2954.  
  2955.  
  2956.  
  2957.  
  2958. typedef    struct {
  2959.     Mach_RegState    extraSpace;     
  2960.     Sig_Stack        sigStack;     
  2961.     Sig_Context        sigContext;     
  2962. } MachSignalStack;
  2963.  
  2964.  
  2965.  
  2966.  
  2967.  
  2968.  
  2969. extern    Address    Mach_GetPC();
  2970.  
  2971. extern    Boolean    mach_KernelMode;
  2972. extern    int    mach_NumProcessors;
  2973. extern    Boolean    mach_AtInterruptLevel;
  2974. extern    int    *mach_NumDisableIntrsPtr;
  2975.  
  2976.  
  2977.  
  2978. extern    char    *mach_MachineType;
  2979.  
  2980.  
  2981.  
  2982.  
  2983.  
  2984. extern    Fmt_Format    mach_Format;
  2985.  
  2986.  
  2987.  
  2988.  
  2989.  
  2990. extern void    Mach_Init();
  2991.  
  2992.  
  2993.  
  2994.  
  2995.  
  2996.  
  2997. extern    int    debugCounter;
  2998. extern    int    debugSpace[];
  2999.  
  3000.  
  3001.  
  3002.  
  3003.  
  3004.  
  3005.  
  3006. # 267 "/sprite/lib/include/sun4.md/kernel/mach.h"
  3007.  
  3008.  
  3009.  
  3010.  
  3011.  
  3012. extern ReturnStatus        Mach_EncapState();
  3013. extern ReturnStatus        Mach_DeencapState();
  3014. extern ReturnStatus        Mach_GetEncapSize();
  3015. extern Boolean            Mach_CanMigrate();
  3016.  
  3017. extern void            Mach_SetHandler();
  3018. extern void            Mach_InitSyscall();
  3019. extern ReturnStatus        Mach_Probe();
  3020.  
  3021.  
  3022.  
  3023.  
  3024. extern Mach_ProcessorStates    Mach_ProcessorState();
  3025. extern int            Mach_GetNumProcessors();
  3026.  
  3027.  
  3028.  
  3029.  
  3030. extern    void    Mach_GetEtherAddress();
  3031. extern    void    Mach_ContextSwitch();
  3032. extern    int    Mach_TestAndSet();
  3033. extern    int    Mach_GetMachineType();
  3034. extern    int    Mach_GetMachineArch();
  3035. extern    void    MachFlushWindowsToStack();
  3036.  
  3037.  
  3038.  
  3039.  
  3040. extern    int        spriteStart;
  3041. extern    int        endBss;
  3042. extern    int        endText;
  3043.  
  3044.  
  3045.  
  3046.  
  3047.  
  3048.  
  3049.  
  3050.  
  3051.  
  3052.  
  3053.  
  3054.  
  3055. extern    Address    mach_KernStart;
  3056. extern    Address    mach_CodeStart;
  3057. extern    Address    mach_StackBottom;
  3058. extern    int    mach_KernStackSize;
  3059. extern    Address    mach_KernEnd;
  3060. extern    Address    mach_FirstUserAddr;
  3061. extern    Address    mach_LastUserAddr;
  3062. extern    Address    mach_MaxUserStackAddr;
  3063. extern    int    mach_LastUserStackPage;
  3064.  
  3065.  
  3066. # 25 "/sprite/lib/include/proc.h" 2
  3067.  
  3068.  
  3069.  
  3070.  
  3071. # 1 "/sprite/lib/include/vm.h" 1
  3072.  
  3073.  
  3074.  
  3075.  
  3076.  
  3077.  
  3078.  
  3079.  
  3080.  
  3081.  
  3082.  
  3083.  
  3084.  
  3085.  
  3086.  
  3087. # 1 "/sprite/lib/include/sprite.h" 1
  3088.  
  3089.  
  3090.  
  3091.  
  3092.  
  3093.  
  3094.  
  3095.  
  3096.  
  3097.  
  3098.  
  3099.  
  3100.  
  3101.  
  3102.  
  3103.  
  3104.  
  3105. # 94 "/sprite/lib/include/sprite.h"
  3106.  
  3107. # 16 "/sprite/lib/include/vm.h" 2
  3108.  
  3109. # 1 "/sprite/lib/include/sun4.md/vmMach.h" 1
  3110.  
  3111.  
  3112.  
  3113.  
  3114.  
  3115.  
  3116.  
  3117.  
  3118.  
  3119.  
  3120.  
  3121.  
  3122.  
  3123.  
  3124.  
  3125.  
  3126. # 1 "/sprite/lib/include/sprite.h" 1
  3127.  
  3128.  
  3129.  
  3130.  
  3131.  
  3132.  
  3133.  
  3134.  
  3135.  
  3136.  
  3137.  
  3138.  
  3139.  
  3140.  
  3141.  
  3142.  
  3143.  
  3144. # 94 "/sprite/lib/include/sprite.h"
  3145.  
  3146. # 17 "/sprite/lib/include/sun4.md/vmMach.h" 2
  3147.  
  3148.  
  3149.  
  3150.  
  3151.  
  3152.  
  3153.  
  3154.  
  3155. # 17 "/sprite/lib/include/vm.h" 2
  3156.  
  3157. # 1 "/sprite/lib/include/vmStat.h" 1
  3158.  
  3159.  
  3160.  
  3161.  
  3162.  
  3163.  
  3164.  
  3165.  
  3166.  
  3167.  
  3168.  
  3169.  
  3170.  
  3171.  
  3172.  
  3173.  
  3174.  
  3175.  
  3176. # 1 "/sprite/lib/include/sun4.md/kernel/vmMachStat.h" 1
  3177.  
  3178.  
  3179.  
  3180.  
  3181.  
  3182.  
  3183.  
  3184.  
  3185.  
  3186.  
  3187.  
  3188.  
  3189.  
  3190.  
  3191.  
  3192.  
  3193.  
  3194.  
  3195.  
  3196. typedef struct {
  3197.     int    stealContext;         
  3198.  
  3199.     int    stealPmeg;         
  3200.  
  3201. } VmMachDepStat;
  3202.  
  3203.  
  3204. # 19 "/sprite/lib/include/vmStat.h" 2
  3205.  
  3206.  
  3207.  
  3208.  
  3209.  
  3210.  
  3211.  
  3212.  
  3213.  
  3214.  
  3215. typedef struct {
  3216.     int    numPhysPages;         
  3217.      
  3218.  
  3219.  
  3220.     int    numFreePages;         
  3221.     int    numDirtyPages;         
  3222.     int    numReservePages;     
  3223.  
  3224.     int    numUserPages;         
  3225.  
  3226.  
  3227.     int    kernStackPages;         
  3228.     int kernMemPages;         
  3229.  
  3230.      
  3231.  
  3232.  
  3233.     int    totalFaults;         
  3234.  
  3235.     int    totalUserFaults;     
  3236.  
  3237.     int    zeroFilled;         
  3238.  
  3239.     int    fsFilled;         
  3240.  
  3241.     int    psFilled;         
  3242.  
  3243.     int    collFaults;         
  3244.  
  3245.     int    quickFaults;         
  3246.  
  3247.     int    codeFaults;         
  3248.     int    heapFaults;         
  3249.     int    stackFaults;         
  3250.      
  3251.  
  3252.  
  3253.     int    numAllocs;         
  3254.     int    gotFreePage;         
  3255.     int    pageAllocs;         
  3256.     int    gotPageFromFS;         
  3257.  
  3258.     int    numListSearches;     
  3259.  
  3260.     int    usedFreePage;         
  3261.     int    lockSearched;         
  3262.  
  3263.     int    refSearched;         
  3264.  
  3265.     int    dirtySearched;         
  3266.  
  3267.     int    reservePagesUsed;     
  3268.  
  3269.      
  3270.  
  3271.  
  3272.     int    pagesWritten;         
  3273.  
  3274.     int    cleanWait;         
  3275.  
  3276.  
  3277.     int    pageoutWakeup;         
  3278.  
  3279.  
  3280.     int    pageoutNoWork;         
  3281.  
  3282.     int pageoutWait;         
  3283.  
  3284.  
  3285.      
  3286.  
  3287.  
  3288.     int    mapPageWait;         
  3289.  
  3290.  
  3291.     int    accessWait;         
  3292.  
  3293.  
  3294.      
  3295.  
  3296.  
  3297.     VmMachDepStat    machDepStat;
  3298.      
  3299.  
  3300.  
  3301.  
  3302.     int    minVMPages;
  3303.      
  3304.  
  3305.  
  3306.     int    fsAsked;         
  3307.  
  3308.     int    haveFreePage;         
  3309.  
  3310.     int    fsMap;             
  3311.  
  3312.     int    fsUnmap;         
  3313.  
  3314.     int    maxFSPages;         
  3315.  
  3316.     int    minFSPages;         
  3317.  
  3318.      
  3319.  
  3320.  
  3321.     int    numCOWHeapPages;     
  3322.     int    numCOWStkPages;         
  3323.     int numCORHeapPages;     
  3324.     int numCORStkPages;         
  3325.     int    numCOWHeapFaults;     
  3326.     int    numCOWStkFaults;     
  3327.     int    quickCOWFaults;         
  3328.     int numCORHeapFaults;     
  3329.     int numCORStkFaults;     
  3330.     int    quickCORFaults;         
  3331.     int swapPagesCopied;     
  3332.     int    numCORCOWHeapFaults;     
  3333.  
  3334.     int    numCORCOWStkFaults;     
  3335.  
  3336.      
  3337.  
  3338.  
  3339.     int    potModPages;         
  3340.  
  3341.  
  3342.     int    notModPages;         
  3343.  
  3344.     int    notHardModPages;     
  3345.  
  3346.      
  3347.  
  3348.  
  3349.     int    codePrefetches;         
  3350.     int    heapSwapPrefetches;     
  3351.     int    heapFSPrefetches;     
  3352.  
  3353.     int    stackPrefetches;     
  3354.  
  3355.     int    codePrefetchHits;     
  3356.     int    heapSwapPrefetchHits;     
  3357.  
  3358.     int    heapFSPrefetchHits;     
  3359.  
  3360.     int    stackPrefetchHits;     
  3361.  
  3362.     int    prefetchAborts;         
  3363.  
  3364.  
  3365. } Vm_Stat;
  3366.  
  3367. extern    Vm_Stat    vmStat;
  3368.  
  3369. # 18 "/sprite/lib/include/vm.h" 2
  3370.  
  3371.  
  3372.  
  3373.  
  3374.  
  3375.  
  3376.  
  3377.  
  3378.  
  3379.  
  3380.  
  3381.  
  3382.  
  3383.  
  3384.  
  3385.  
  3386.  
  3387.  
  3388.  
  3389.  
  3390.  
  3391.  
  3392.  
  3393.  
  3394.  
  3395.  
  3396.  
  3397.  
  3398.  
  3399.  
  3400.  
  3401.  
  3402.  
  3403.  
  3404.  
  3405.  
  3406.  
  3407.  
  3408.  
  3409.  
  3410.  
  3411.  
  3412.  
  3413.  
  3414.  
  3415.  
  3416.  
  3417.  
  3418.  
  3419.  
  3420.  
  3421.  
  3422.  
  3423.  
  3424.  
  3425.  
  3426.  
  3427.  
  3428.  
  3429.  
  3430.  
  3431.  
  3432.  
  3433.  
  3434.  
  3435.  
  3436.  
  3437.  
  3438.  
  3439.  
  3440.  
  3441.  
  3442.  
  3443.  
  3444.  
  3445.  
  3446.  
  3447.  
  3448.  
  3449.  
  3450.  
  3451.  
  3452.  
  3453.  
  3454.  
  3455.  
  3456.  
  3457.  
  3458.  
  3459.  
  3460.  
  3461.  
  3462.  
  3463.  
  3464.  
  3465.  
  3466.  
  3467.  
  3468.  
  3469.  
  3470. typedef int Vm_SegmentID;
  3471.  
  3472.  
  3473.  
  3474.  
  3475.  
  3476.  
  3477.  
  3478.  
  3479.  
  3480.  
  3481.  
  3482.  
  3483.  
  3484.  
  3485.  
  3486.  
  3487.  
  3488.  
  3489.  
  3490.  
  3491.  
  3492. typedef struct Vm_SegmentInfo {
  3493.     int            segNum;         
  3494.     int         refCount;     
  3495.  
  3496.                          
  3497.  
  3498.     char        objFileName[50 ];
  3499.     int               type;         
  3500.     int            numPages;     
  3501.     int            ptSize;         
  3502.     int            resPages;     
  3503.  
  3504.     int            flags;         
  3505.  
  3506.     int            ptUserCount;     
  3507.  
  3508.     int            numCOWPages;     
  3509.  
  3510.     int            numCORPages;     
  3511.  
  3512.     Address        minAddr;     
  3513.  
  3514.     Address        maxAddr;     
  3515.  
  3516.     int            traceTime;     
  3517.  
  3518. } Vm_SegmentInfo;
  3519.  
  3520.  
  3521.  
  3522.  
  3523. extern    ReturnStatus    Vm_PageSize();
  3524. extern    ReturnStatus    Vm_CreateVA();
  3525. extern    ReturnStatus    Vm_DestroyVA();
  3526. extern    ReturnStatus    Vm_Cmd();
  3527. extern    ReturnStatus    Vm_GetSegInfo();
  3528.  
  3529.  
  3530. # 29 "/sprite/lib/include/proc.h" 2
  3531.  
  3532.  
  3533.  
  3534.  
  3535.  
  3536.  
  3537.  
  3538.  
  3539.  
  3540.  
  3541.  
  3542.  
  3543.  
  3544.  
  3545.  
  3546.  
  3547.  
  3548.  
  3549.  
  3550.  
  3551.  
  3552.  
  3553.  
  3554.  
  3555.  
  3556.  
  3557.  
  3558.  
  3559.  
  3560.  
  3561.  
  3562.  
  3563.  
  3564.  
  3565.  
  3566.  
  3567.  
  3568.  
  3569.  
  3570.  
  3571.  
  3572.  
  3573.  
  3574.  
  3575.  
  3576.  
  3577.  
  3578.  
  3579.  
  3580.  
  3581. typedef unsigned int     Proc_PID;
  3582.  
  3583.  
  3584.  
  3585.  
  3586.  
  3587.  
  3588.  
  3589.  
  3590.  
  3591.  
  3592.  
  3593.  
  3594.  
  3595.  
  3596.  
  3597.  
  3598.  
  3599.  
  3600.  
  3601.  
  3602.  
  3603.  
  3604.  
  3605.  
  3606.  
  3607.  
  3608.  
  3609.  
  3610.  
  3611.  
  3612.  
  3613.  
  3614.  
  3615.  
  3616.  
  3617.  
  3618.  
  3619.  
  3620.  
  3621.  
  3622.  
  3623.  
  3624.  
  3625.  
  3626.  
  3627.  
  3628.  
  3629.  
  3630.  
  3631.  
  3632.  
  3633.  
  3634.  
  3635.  
  3636.  
  3637.  
  3638.  
  3639.  
  3640.  
  3641.  
  3642.  
  3643. typedef enum {
  3644.     PROC_UNUSED,     
  3645.     PROC_RUNNING,     
  3646.     PROC_READY,         
  3647.     PROC_WAITING,     
  3648.  
  3649.     PROC_EXITING,     
  3650.  
  3651.     PROC_DEAD,         
  3652.     PROC_MIGRATED,     
  3653.     PROC_NEW,         
  3654.     PROC_SUSPENDED     
  3655. } Proc_State;
  3656.  
  3657.  
  3658.  
  3659.  
  3660.  
  3661.  
  3662.  
  3663.  
  3664.  
  3665.  
  3666.  
  3667.  
  3668.  
  3669.  
  3670.  
  3671.  
  3672.  
  3673.  
  3674.  
  3675.  
  3676.  
  3677.  
  3678.  
  3679.  
  3680.  
  3681.  
  3682.  
  3683.  
  3684.  
  3685.  
  3686.  
  3687.  
  3688.  
  3689.  
  3690.  
  3691.  
  3692.  
  3693.  
  3694.  
  3695.  
  3696.  
  3697.  
  3698.  
  3699.  
  3700.  
  3701.  
  3702.  
  3703.  
  3704.  
  3705.  
  3706.  
  3707.  
  3708.  
  3709.  
  3710.  
  3711.  
  3712.  
  3713.  
  3714.  
  3715.  
  3716.  
  3717.  
  3718.  
  3719.  
  3720.  
  3721.  
  3722.  
  3723.  
  3724.  
  3725.  
  3726.  
  3727.  
  3728.  
  3729.  
  3730.  
  3731.  
  3732.  
  3733.  
  3734.  
  3735.  
  3736.  
  3737. typedef struct {
  3738.     Time kernelCpuUsage;     
  3739.     Time userCpuUsage;         
  3740.  
  3741.     Time childKernelCpuUsage;     
  3742.  
  3743.     Time childUserCpuUsage;     
  3744.  
  3745.     int    numQuantumEnds;         
  3746.  
  3747.     int numWaitEvents;         
  3748.  
  3749.  
  3750. } Proc_ResUsage;
  3751.  
  3752.  
  3753.  
  3754.  
  3755.  
  3756. typedef enum {
  3757.     PROC_GET_THIS_DEBUG,
  3758.     PROC_GET_NEXT_DEBUG,
  3759.     PROC_CONTINUE,
  3760.     PROC_SINGLE_STEP,
  3761.     PROC_GET_DBG_STATE,
  3762.     PROC_SET_DBG_STATE,
  3763.     PROC_READ,
  3764.     PROC_WRITE,
  3765.     PROC_DETACH_DEBUGGER
  3766. } Proc_DebugReq;
  3767.  
  3768.  
  3769.  
  3770.  
  3771.  
  3772.  
  3773.  
  3774.  
  3775.  
  3776.  
  3777.  
  3778.  
  3779.  
  3780.  
  3781.  
  3782.  
  3783. typedef struct {
  3784.     Proc_PID    processID;         
  3785.     int    termReason;             
  3786.  
  3787.     int    termStatus;             
  3788.  
  3789.     int    termCode;             
  3790.     Mach_RegState regState;         
  3791.     int    sigHoldMask;             
  3792.     int    sigPendingMask;             
  3793.     int    sigActions[        32 ];      
  3794.  
  3795.     int    sigMasks[        32 ];      
  3796.  
  3797.     int    sigCodes[        32 ];      
  3798.  
  3799.  
  3800. } Proc_DebugState;
  3801.  
  3802.  
  3803.  
  3804.  
  3805.  
  3806. typedef struct {
  3807.     char *name;         
  3808.     char *value;     
  3809. } Proc_EnvironVar;
  3810.  
  3811.  
  3812.  
  3813.  
  3814. typedef struct  {
  3815.     int        processor;     
  3816.  
  3817.  
  3818.  
  3819.     Proc_State    state;         
  3820.  
  3821.  
  3822.     int        genFlags;     
  3823.  
  3824.  
  3825.      
  3826.  
  3827.  
  3828.  
  3829.  
  3830.  
  3831.  
  3832.  
  3833.  
  3834.  
  3835.  
  3836.  
  3837.     Proc_PID    processID;         
  3838.  
  3839.  
  3840.  
  3841.     Proc_PID    parentID;         
  3842.  
  3843.     int        familyID;         
  3844.  
  3845.     int        userID;             
  3846.  
  3847.  
  3848.     int        effectiveUserID;     
  3849.  
  3850.  
  3851.      
  3852.  
  3853.  
  3854.  
  3855.  
  3856.  
  3857.  
  3858.  
  3859.  
  3860.  
  3861.     int         event;          
  3862.  
  3863.      
  3864.  
  3865.  
  3866.  
  3867.  
  3868.  
  3869.  
  3870.  
  3871.  
  3872.     int      billingRate;     
  3873.  
  3874.     unsigned int recentUsage;     
  3875.     unsigned int weightedUsage;     
  3876.  
  3877.     unsigned int unweightedUsage;  
  3878.  
  3879.  
  3880.      
  3881.  
  3882.  
  3883.  
  3884.  
  3885.  
  3886.  
  3887.  
  3888.     Time kernelCpuUsage;     
  3889.     Time userCpuUsage;         
  3890.  
  3891.     Time childKernelCpuUsage;     
  3892.  
  3893.     Time childUserCpuUsage;     
  3894.  
  3895.     int     numQuantumEnds;         
  3896.  
  3897.  
  3898.     int        numWaitEvents;         
  3899.  
  3900.  
  3901.     unsigned int schedQuantumTicks;     
  3902.  
  3903.  
  3904.      
  3905.  
  3906.  
  3907.  
  3908.  
  3909.  
  3910.  
  3911.     Vm_SegmentID        vmSegments[    4 ];
  3912.  
  3913.  
  3914.      
  3915.  
  3916.  
  3917.  
  3918.  
  3919.  
  3920.  
  3921.  
  3922.     int        sigHoldMask;         
  3923.     int        sigPendingMask;         
  3924.                          
  3925.  
  3926.     int        sigActions[        32 ];
  3927.                          
  3928.  
  3929.      
  3930.  
  3931.  
  3932.  
  3933.  
  3934.  
  3935.  
  3936.     int        peerHostID;          
  3937.  
  3938.  
  3939.     Proc_PID    peerProcessID;          
  3940.  
  3941. } Proc_PCBInfo;
  3942.  
  3943.  
  3944.  
  3945.  
  3946.  
  3947.  
  3948.  
  3949.  
  3950.  
  3951.  
  3952.  
  3953.  
  3954.  
  3955.  
  3956.  
  3957.  
  3958.  
  3959.  
  3960.  
  3961.  
  3962.  
  3963.  
  3964.  
  3965.  
  3966.  
  3967.  
  3968.  
  3969.  
  3970.  
  3971.  
  3972.  
  3973.  
  3974.  
  3975.  
  3976.  
  3977. typedef struct {
  3978.     Time    interval;     
  3979.     Time    curValue;     
  3980. } Proc_TimerInterval;
  3981.  
  3982.  
  3983.  
  3984.  
  3985.  
  3986.  
  3987.  
  3988.  
  3989.  
  3990.  
  3991.  
  3992.  
  3993.  
  3994.  
  3995.  
  3996. typedef struct {
  3997.     char argString[256 ];
  3998. } Proc_PCBArgString;
  3999.  
  4000.  
  4001.  
  4002.  
  4003.  
  4004.  
  4005.  
  4006.  
  4007.  
  4008.  
  4009.  
  4010.  
  4011.  
  4012.  
  4013.  
  4014.  
  4015.  
  4016.  
  4017.  
  4018.  
  4019.  
  4020.  
  4021.  
  4022.  
  4023.  
  4024.  
  4025.  
  4026.  
  4027.  
  4028.  
  4029.  
  4030.  
  4031.  
  4032.  
  4033.  
  4034.  
  4035.  
  4036.  
  4037.  
  4038.  
  4039.  
  4040.  
  4041.  
  4042.  
  4043.  
  4044.  
  4045.  
  4046.  
  4047.  
  4048. extern ReturnStatus Proc_SetExitHandler();
  4049. extern void        Proc_Exit();
  4050.  
  4051.  
  4052.  
  4053.  
  4054.  
  4055. extern ReturnStatus Proc_Fork();
  4056. extern void        Proc_RawExit();
  4057. extern ReturnStatus Proc_Detach();
  4058. extern ReturnStatus Proc_Wait();
  4059. extern ReturnStatus Proc_RawWait();
  4060. extern ReturnStatus Proc_Exec();
  4061. extern ReturnStatus Proc_ExecEnv();
  4062.  
  4063. extern ReturnStatus Proc_GetIDs();
  4064. extern ReturnStatus Proc_SetIDs();
  4065. extern ReturnStatus Proc_GetGroupIDs();
  4066. extern ReturnStatus Proc_SetGroupIDs();
  4067. extern ReturnStatus Proc_GetFamilyID();
  4068. extern ReturnStatus Proc_SetFamilyID();
  4069.  
  4070. extern ReturnStatus Proc_GetPCBInfo();
  4071. extern ReturnStatus Proc_GetResUsage();
  4072. extern ReturnStatus Proc_GetPriority();
  4073. extern ReturnStatus Proc_SetPriority();
  4074.  
  4075. extern ReturnStatus Proc_Debug();
  4076. extern ReturnStatus Proc_Profile();
  4077.  
  4078. extern ReturnStatus Proc_SetIntervalTimer();
  4079. extern ReturnStatus Proc_GetIntervalTimer();
  4080.  
  4081. extern ReturnStatus Proc_SetEnviron();
  4082. extern ReturnStatus Proc_UnsetEnviron();
  4083. extern ReturnStatus Proc_GetEnvironVar();
  4084. extern ReturnStatus Proc_GetEnvironRange();
  4085. extern ReturnStatus Proc_InstallEnviron();
  4086. extern ReturnStatus Proc_CopyEnviron();
  4087.  
  4088. extern ReturnStatus Proc_Migrate();
  4089.  
  4090.  
  4091.  
  4092.  
  4093. # 23 "/sprite/lib/include/fs.h" 2
  4094.  
  4095.  
  4096.  
  4097.  
  4098.  
  4099.  
  4100.  
  4101.  
  4102.  
  4103.  
  4104.  
  4105.  
  4106.  
  4107.  
  4108.  
  4109.  
  4110.  
  4111.  
  4112.  
  4113.  
  4114.  
  4115.  
  4116.  
  4117.  
  4118.  
  4119.  
  4120.  
  4121.  
  4122.  
  4123.  
  4124.  
  4125.  
  4126.  
  4127.  
  4128.  
  4129.  
  4130.  
  4131.  
  4132.  
  4133.  
  4134.  
  4135.  
  4136.  
  4137.  
  4138.  
  4139.  
  4140.  
  4141.  
  4142.  
  4143.  
  4144.  
  4145.  
  4146.  
  4147.  
  4148.  
  4149.  
  4150.  
  4151.  
  4152.  
  4153.  
  4154.  
  4155.  
  4156.  
  4157.  
  4158.  
  4159.  
  4160.  
  4161.  
  4162.  
  4163.  
  4164.  
  4165.  
  4166.  
  4167.  
  4168.  
  4169.  
  4170.  
  4171.  
  4172.  
  4173.  
  4174.  
  4175.  
  4176.  
  4177.  
  4178.  
  4179.  
  4180.  
  4181.  
  4182.  
  4183.  
  4184. typedef struct Fs_Attributes {
  4185.     int    serverID;         
  4186.     int domain;             
  4187.     int fileNumber;         
  4188.     int type;             
  4189.     int size;             
  4190.     int numLinks;         
  4191.     unsigned int permissions;     
  4192.     int uid;             
  4193.     int gid;             
  4194.     int devServerID;         
  4195.     int devType;         
  4196.     int devUnit;         
  4197.     Time createTime;         
  4198.     Time accessTime;         
  4199.     Time descModifyTime;     
  4200.     Time dataModifyTime;     
  4201.     int  blocks;         
  4202.     int  blockSize;         
  4203.     int    version;         
  4204.     int userType;         
  4205.     int pad[4];             
  4206. } Fs_Attributes;
  4207.  
  4208.  
  4209.  
  4210.  
  4211.  
  4212.  
  4213.  
  4214.  
  4215.  
  4216.  
  4217.  
  4218.  
  4219.  
  4220.  
  4221.  
  4222.  
  4223.  
  4224.  
  4225.  
  4226.  
  4227.  
  4228.  
  4229.  
  4230.  
  4231.  
  4232.  
  4233.  
  4234.  
  4235.  
  4236.  
  4237.  
  4238.  
  4239.  
  4240.  
  4241.  
  4242.  
  4243.  
  4244.  
  4245.  
  4246.  
  4247.  
  4248.  
  4249.  
  4250.  
  4251.  
  4252.  
  4253.  
  4254.  
  4255.  
  4256.  
  4257.  
  4258.  
  4259.  
  4260.  
  4261.  
  4262.  
  4263.  
  4264.  
  4265.  
  4266.  
  4267.  
  4268.  
  4269.  
  4270.  
  4271.  
  4272.  
  4273.  
  4274.  
  4275.  
  4276.  
  4277.  
  4278.  
  4279.  
  4280.  
  4281.  
  4282.  
  4283.  
  4284.  
  4285.  
  4286.  
  4287.  
  4288.  
  4289.  
  4290.  
  4291.  
  4292.  
  4293.  
  4294.  
  4295.  
  4296.  
  4297.  
  4298.  
  4299.  
  4300.  
  4301.  
  4302.  
  4303.  
  4304.  
  4305.  
  4306. typedef struct Fs_FileID {
  4307.     int        type;         
  4308.  
  4309.  
  4310.     int        serverID;     
  4311.  
  4312.  
  4313.     int        major;         
  4314.     int        minor;         
  4315. } Fs_FileID;             
  4316.  
  4317.  
  4318.  
  4319.  
  4320.  
  4321.  
  4322.  
  4323. typedef struct Fs_UserIDs {
  4324.     int user;             
  4325.     int numGroupIDs;         
  4326.     int group[8 ];     
  4327. } Fs_UserIDs;             
  4328.  
  4329.  
  4330.  
  4331.  
  4332.  
  4333.  
  4334.  
  4335.  
  4336.  
  4337.  
  4338.  
  4339.  
  4340.  
  4341.  
  4342.  
  4343.  
  4344.  
  4345.  
  4346.  
  4347.  
  4348.  
  4349.  
  4350.  
  4351.  
  4352.  
  4353.  
  4354.  
  4355.  
  4356.  
  4357.  
  4358.  
  4359.  
  4360.  
  4361.  
  4362.  
  4363.  
  4364.  
  4365.  
  4366.  
  4367.  
  4368.  
  4369.  
  4370.  
  4371.  
  4372.  
  4373.  
  4374.  
  4375.  
  4376.  
  4377.  
  4378.  
  4379.  
  4380.  
  4381.  
  4382.  
  4383.  
  4384.  
  4385.  
  4386.  
  4387.  
  4388.  
  4389.  
  4390. typedef struct Ioc_RepositionArgs {
  4391.     int base;     
  4392.     int offset;     
  4393. } Ioc_RepositionArgs;
  4394.  
  4395.  
  4396.  
  4397.  
  4398.  
  4399.  
  4400.  
  4401.  
  4402.  
  4403.  
  4404.  
  4405.  
  4406.  
  4407.  
  4408.  
  4409.  
  4410.  
  4411.  
  4412.  
  4413.  
  4414.  
  4415.  
  4416.  
  4417.  
  4418.  
  4419.  
  4420.  
  4421.  
  4422.  
  4423.  
  4424.  
  4425.  
  4426.  
  4427.  
  4428.  
  4429.  
  4430.  
  4431.  
  4432.  
  4433.  
  4434.  
  4435.  
  4436. typedef struct Ioc_LockArgs {
  4437.     int        flags;         
  4438.  
  4439.  
  4440.  
  4441.  
  4442.  
  4443.      
  4444.  
  4445.  
  4446.  
  4447.  
  4448.     int        hostID;         
  4449.     Proc_PID    pid;         
  4450.     int        token;         
  4451. } Ioc_LockArgs;
  4452.  
  4453.  
  4454.  
  4455.  
  4456.  
  4457.  
  4458.  
  4459.  
  4460.  
  4461. typedef struct Ioc_Owner {
  4462.     Proc_PID    id;         
  4463.     int        procOrFamily;     
  4464. } Ioc_Owner;
  4465.  
  4466.  
  4467.  
  4468.  
  4469.  
  4470.  
  4471.  
  4472. typedef struct Ioc_MapArgs {
  4473.     int        numBytes;
  4474.     Address    address;
  4475. } Ioc_MapArgs;
  4476.  
  4477.  
  4478.  
  4479.  
  4480. typedef struct Ioc_PrefixArgs {
  4481.     char    prefix[1024 ];   
  4482. } Ioc_PrefixArgs;
  4483.  
  4484.  
  4485.  
  4486.  
  4487.  
  4488.  
  4489.  
  4490.  
  4491. typedef struct Ioc_WriteBackArgs {
  4492.     int        firstByte;     
  4493.     int        lastByte;     
  4494.     Boolean    shouldBlock;     
  4495. } Ioc_WriteBackArgs;
  4496.  
  4497.  
  4498.  
  4499.  
  4500.  
  4501. typedef struct Ioc_MmapInfoArgs {
  4502.     int        isMapped;     
  4503.     int        clientID;     
  4504. } Ioc_MmapInfoArgs;
  4505.  
  4506.  
  4507.  
  4508.  
  4509.  
  4510.  
  4511.  
  4512.  
  4513.  
  4514.  
  4515.  
  4516.  
  4517.  
  4518.  
  4519.  
  4520.  
  4521.  
  4522.  
  4523.  
  4524.  
  4525.  
  4526.  
  4527.  
  4528.  
  4529.  
  4530.  
  4531.  
  4532.  
  4533.  
  4534.  
  4535.  
  4536.  
  4537.  
  4538.  
  4539.  
  4540.  
  4541.  
  4542.  
  4543.  
  4544.  
  4545.  
  4546.  
  4547.  
  4548.  
  4549.  
  4550.  
  4551.  
  4552.  
  4553.  
  4554.  
  4555.  
  4556.  
  4557.  
  4558.  
  4559.  
  4560.  
  4561.  
  4562.  
  4563.  
  4564.  
  4565.  
  4566.  
  4567.  
  4568.  
  4569.  
  4570.  
  4571. typedef struct Fs_TwoPaths {
  4572.     int        pathLen1;     
  4573.     int        pathLen2;     
  4574.     char     *path1;         
  4575.     char     *path2;         
  4576. } Fs_TwoPaths;
  4577.  
  4578.  
  4579.  
  4580.  
  4581. typedef struct {
  4582.     int    maxKbytes;         
  4583.  
  4584.     int    freeKbytes;         
  4585.  
  4586.  
  4587.  
  4588.     int    maxFileDesc;         
  4589.  
  4590.     int    freeFileDesc;         
  4591.     int blockSize;         
  4592.     int optSize;         
  4593. } Fs_DomainInfo;
  4594.  
  4595.  
  4596.  
  4597.  
  4598.  
  4599.  
  4600.  
  4601.  
  4602. typedef struct Fs_Prefix {
  4603.     int serverID;         
  4604.  
  4605.     int domain;             
  4606.     int fileNumber;         
  4607.     int version;         
  4608.     int flags;             
  4609.     char prefix[64 ];
  4610.     Fs_DomainInfo domainInfo;     
  4611. } Fs_Prefix;
  4612.  
  4613.  
  4614.  
  4615.  
  4616.  
  4617.  
  4618.  
  4619.  
  4620.  
  4621.  
  4622.  
  4623.  
  4624.  
  4625. typedef struct {
  4626.     int        bufSize;     
  4627.     Address    buffer;         
  4628.  
  4629.  
  4630. } Fs_IOVector;
  4631.  
  4632.  
  4633.  
  4634.  
  4635.  
  4636.  
  4637.  
  4638. typedef struct Fs_Device {
  4639.     int        serverID;     
  4640.  
  4641.     int        type;         
  4642.  
  4643.     int        unit;         
  4644.  
  4645.     ClientData    data;         
  4646.  
  4647.  
  4648. } Fs_Device;
  4649.  
  4650.  
  4651.  
  4652.  
  4653. typedef ClientData Fs_TimeoutHandler;
  4654.  
  4655. extern void            Fs_Dispatch();
  4656. extern void            Fs_EventHandlerCreate();
  4657. extern void             Fs_EventHandlerDestroy();
  4658. extern ClientData         Fs_EventHandlerData();
  4659. extern ClientData         Fs_EventHandlerChangeData();
  4660. extern char            *Fs_GetTempName();
  4661. extern int            Fs_GetTempFile();
  4662. extern int                  Fs_IOControl();
  4663. extern Boolean            Fs_IsATerm();
  4664. extern Fs_TimeoutHandler    Fs_TimeoutHandlerCreate();
  4665. extern void             Fs_TimeoutHandlerDestroy();
  4666.  
  4667. extern int                  Ioc_ClearBits();
  4668. extern int                  Ioc_GetFlags();
  4669. extern int                  Ioc_GetOwner();
  4670. extern int                  Ioc_Lock();
  4671. extern int                  Ioc_Map();
  4672. extern int                  Ioc_NumReadable();
  4673. extern int                  Ioc_SetBits();
  4674. extern int                  Ioc_Reposition();
  4675. extern int                  Ioc_SetFlags();
  4676. extern int                  Ioc_SetOwner();
  4677. extern int                  Ioc_Truncate();
  4678. extern int                  Ioc_Unlock();
  4679. extern int                  Ioc_WriteBack();
  4680.  
  4681.  
  4682. # 22 "/sprite/lib/include/mig.h" 2
  4683.  
  4684.  
  4685.  
  4686.  
  4687.  
  4688.  
  4689.  
  4690.  
  4691.  
  4692.  
  4693.  
  4694.  
  4695.  
  4696.  
  4697.  
  4698.  
  4699.  
  4700.  
  4701.  
  4702.  
  4703.  
  4704.  
  4705.  
  4706.  
  4707.  
  4708.  
  4709.  
  4710.  
  4711.  
  4712.  
  4713.  
  4714.  
  4715.  
  4716.  
  4717.  
  4718.  
  4719.  
  4720.  
  4721.  
  4722.  
  4723.  
  4724.  
  4725.  
  4726.  
  4727.  
  4728.  
  4729.  
  4730.  
  4731.  
  4732.  
  4733.  
  4734.  
  4735.  
  4736.  
  4737.  
  4738.  
  4739.  
  4740.  
  4741.  
  4742.  
  4743.  
  4744.  
  4745.  
  4746.  
  4747.  
  4748.  
  4749.  
  4750.  
  4751.  
  4752.  
  4753.  
  4754.  
  4755.  
  4756.  
  4757.  
  4758.  
  4759.  
  4760.  
  4761. typedef struct {
  4762.     int     timestamp;             
  4763.     int     noInput;             
  4764.     int        allowMigration;             
  4765.     int        foreignProcs;             
  4766.  
  4767.  
  4768.     int        utils[3 ];     
  4769.     int        pad;                 
  4770.     double    lengths[3 ];     
  4771. } Mig_LoadVector;
  4772.  
  4773. typedef struct {
  4774.     int        hostID;             
  4775.     int     bootTime;         
  4776.     int        migVersion;         
  4777.  
  4778.     int        maxProcs;         
  4779.  
  4780.     int        foreign[ ( 2  + 1) ];
  4781.                          
  4782.  
  4783.  
  4784.     int        state;             
  4785.  
  4786.     int        pad[4];             
  4787.     Mig_LoadVector loadVec;         
  4788.  
  4789. } Mig_Info;
  4790.  
  4791.  
  4792.  
  4793.  
  4794.  
  4795.  
  4796.  
  4797.  
  4798.  
  4799.  
  4800.  
  4801.  
  4802.  
  4803.  
  4804.  
  4805.  
  4806.  
  4807.  
  4808.  
  4809.  
  4810.  
  4811.  
  4812.  
  4813.  
  4814.  
  4815.  
  4816.  
  4817.  
  4818.  
  4819.  
  4820.  
  4821.  
  4822.  
  4823.  
  4824.  
  4825.  
  4826.  
  4827.  
  4828.  
  4829.  
  4830.  
  4831.  
  4832.  
  4833.  
  4834.  
  4835.  
  4836.  
  4837.  
  4838.  
  4839.  
  4840.  
  4841. typedef struct {
  4842.     int firstHost;         
  4843.     int numRecs;         
  4844. } Mig_InfoRequest;
  4845.  
  4846.  
  4847.  
  4848.  
  4849.  
  4850.  
  4851.  
  4852.  
  4853.  
  4854. typedef struct {
  4855.     int numHosts;         
  4856.     int flags;             
  4857.     int priority;         
  4858.     int    virtHost;         
  4859. } Mig_IdleRequest;
  4860.  
  4861.  
  4862.  
  4863.  
  4864.  
  4865.  
  4866.  
  4867.  
  4868.  
  4869.  
  4870.  
  4871.  
  4872.  
  4873.  
  4874.  
  4875.  
  4876.  
  4877.  
  4878.  
  4879.  
  4880.  
  4881.  
  4882.  
  4883.  
  4884.  
  4885.  
  4886.  
  4887.  
  4888.  
  4889.  
  4890.  
  4891.  
  4892.  
  4893.  
  4894.  
  4895.  
  4896.  
  4897.  
  4898.  
  4899.  
  4900.  
  4901.  
  4902.  
  4903.  
  4904.  
  4905.  
  4906.  
  4907.  
  4908.  
  4909.  
  4910.  
  4911.  
  4912.  
  4913.  
  4914.  
  4915.  
  4916.  
  4917.  
  4918.  
  4919.  
  4920.  
  4921.  
  4922.  
  4923.  
  4924.  
  4925.  
  4926.  
  4927.  
  4928.  
  4929.  
  4930.  
  4931.  
  4932.  
  4933.  
  4934.  
  4935.  
  4936.  
  4937.  
  4938.  
  4939.  
  4940.  
  4941.  
  4942.  
  4943.  
  4944.  
  4945. typedef struct {
  4946.     unsigned int requested;         
  4947.     unsigned int obtained;         
  4948.     unsigned int evicted;         
  4949.  
  4950.     unsigned int reclaimed;         
  4951.  
  4952.  
  4953.     unsigned int timeUsed;         
  4954.  
  4955.     unsigned int timeToEviction;     
  4956.     unsigned int hostIdleObtained[2];     
  4957.  
  4958.     unsigned int hostIdleEvicted[2];     
  4959.  
  4960.  
  4961.     unsigned int idleTimeWhenActive[2];     
  4962.  
  4963.     unsigned int hostCounts[     (    5  + 1) ];  
  4964.  
  4965.     int pad[2];                 
  4966. } Mig_StatTotals;
  4967.  
  4968. typedef struct {
  4969.     char arch[12 ];     
  4970.  
  4971.     unsigned int numClients;         
  4972.  
  4973.     unsigned int gotAll;         
  4974.  
  4975.     unsigned int requestDist[20  + 1];
  4976.                          
  4977.  
  4978.     unsigned int obtainedDist[20  + 1];
  4979.                          
  4980.  
  4981.     unsigned int nonIdleTransitions;     
  4982.  
  4983.     Mig_StatTotals counters;         
  4984.  
  4985.     Mig_StatTotals squared;         
  4986.  
  4987. } Mig_ArchStats;
  4988.  
  4989. typedef struct {
  4990.     unsigned int version;         
  4991.     unsigned int checkpointInterval;     
  4992.  
  4993.     unsigned int firstRun;         
  4994.  
  4995.     unsigned int restarts;         
  4996.  
  4997.     unsigned int intervals;         
  4998.  
  4999.     unsigned int maxArchs;         
  5000.  
  5001.     unsigned int getLoadRequests;     
  5002.  
  5003.     unsigned int totalRequests;         
  5004.  
  5005.     unsigned int totalObtained;         
  5006.  
  5007.     unsigned int numRepeatRequests;     
  5008.  
  5009.  
  5010.     unsigned int numRepeatAssignments;     
  5011.  
  5012.  
  5013.     unsigned int numFirstAssignments;     
  5014.  
  5015.  
  5016.     Mig_ArchStats archStats[8 ];  
  5017. } Mig_Stats;    
  5018.  
  5019.  
  5020.  
  5021.  
  5022.  
  5023.  
  5024.  
  5025.  
  5026.  
  5027.  
  5028.  
  5029.  
  5030.  
  5031.  
  5032.  
  5033.  
  5034.  
  5035.  
  5036.  
  5037.  
  5038.  
  5039.  
  5040.  
  5041.  
  5042.  
  5043.  
  5044.  
  5045.  
  5046.  
  5047.  
  5048. typedef struct {
  5049.     int        criteria;             
  5050.  
  5051.     int        version;             
  5052.     int        noInput;             
  5053.     int        pad;                 
  5054.     double    minThresh[3 ];     
  5055.  
  5056.     double    maxThresh[3 ];     
  5057.  
  5058.  
  5059. } Mig_SystemParms;
  5060.  
  5061.  
  5062.  
  5063.  
  5064.  
  5065. extern int mig_GlobalPdev;     
  5066. extern int mig_LocalPdev;
  5067.  
  5068.  
  5069. extern Mig_Info *    Mig_GetInfo();
  5070. extern int         Mig_GetAllInfo();
  5071. extern int         Mig_GetIdleNode();
  5072. extern int         Mig_OpenInfo();
  5073. extern int         Mig_UpdateInfo();
  5074. extern int         Mig_Done();
  5075. extern int         Mig_ConfirmIdle();
  5076. extern int         Mig_DeleteHost();
  5077. extern int         Mig_Evict();
  5078. extern char *         Mig_GetPdevName();
  5079. extern int         Mig_OpenPdev();
  5080.  
  5081.  
  5082. # 23 "Mig_GetAllInfo.c" 2
  5083.  
  5084. # 1 "/sprite/lib/include/kernel/net.h" 1
  5085.  
  5086.  
  5087.  
  5088.  
  5089.  
  5090.  
  5091.  
  5092.  
  5093.  
  5094.  
  5095.  
  5096.  
  5097.  
  5098.  
  5099.  
  5100.  
  5101.  
  5102.  
  5103.  
  5104.  
  5105.  
  5106. # 1 "/sprite/lib/include/sprite.h" 1
  5107.  
  5108.  
  5109.  
  5110.  
  5111.  
  5112.  
  5113.  
  5114.  
  5115.  
  5116.  
  5117.  
  5118.  
  5119.  
  5120.  
  5121.  
  5122.  
  5123.  
  5124. # 94 "/sprite/lib/include/sprite.h"
  5125.  
  5126. # 22 "/sprite/lib/include/kernel/net.h" 2
  5127.  
  5128. # 1 "/sprite/lib/include/netEther.h" 1
  5129.  
  5130.  
  5131.  
  5132.  
  5133.  
  5134.  
  5135.  
  5136.  
  5137.  
  5138.  
  5139.  
  5140.  
  5141.  
  5142.  
  5143.  
  5144.  
  5145.  
  5146.  
  5147.  
  5148.  
  5149.  
  5150.  
  5151.  
  5152.  
  5153.  
  5154.  
  5155.  
  5156.  
  5157.  
  5158.  
  5159.  
  5160.  
  5161.  
  5162. # 1 "/sprite/lib/include/sun4.md/machparam.h" 1
  5163.  
  5164.  
  5165.  
  5166.  
  5167.  
  5168.  
  5169.  
  5170.  
  5171.  
  5172.  
  5173.  
  5174.  
  5175.  
  5176.  
  5177.  
  5178.  
  5179.  
  5180.  
  5181.  
  5182.  
  5183.  
  5184.  
  5185.  
  5186.  
  5187.  
  5188.  
  5189. # 1 "/sprite/lib/include/sun4.md/limits.h" 1
  5190.  
  5191.  
  5192.  
  5193.  
  5194.  
  5195.  
  5196.  
  5197.  
  5198.  
  5199.  
  5200.  
  5201.  
  5202.  
  5203.  
  5204.  
  5205.  
  5206.  
  5207.  
  5208.  
  5209.  
  5210.  
  5211.  
  5212.  
  5213.  
  5214.  
  5215.  
  5216.  
  5217.  
  5218.  
  5219.  
  5220.  
  5221.  
  5222.  
  5223.  
  5224.  
  5225.  
  5226.  
  5227.  
  5228.  
  5229.  
  5230.  
  5231.  
  5232.  
  5233.  
  5234.  
  5235.  
  5236.  
  5237.  
  5238.  
  5239.  
  5240.  
  5241.  
  5242.  
  5243.  
  5244.  
  5245.  
  5246.  
  5247.  
  5248.  
  5249.  
  5250.  
  5251.  
  5252.  
  5253.  
  5254.  
  5255.  
  5256.  
  5257.  
  5258.  
  5259.  
  5260.  
  5261.  
  5262.  
  5263.  
  5264.  
  5265.  
  5266.  
  5267. # 27 "/sprite/lib/include/sun4.md/machparam.h" 2
  5268.  
  5269.  
  5270.  
  5271.  
  5272.  
  5273.  
  5274.  
  5275.  
  5276.  
  5277.  
  5278.  
  5279.  
  5280.  
  5281.  
  5282.  
  5283.  
  5284.  
  5285.  
  5286.  
  5287.  
  5288.  
  5289.  
  5290.  
  5291.  
  5292.  
  5293.  
  5294.  
  5295.  
  5296.  
  5297.  
  5298.  
  5299.  
  5300.  
  5301.  
  5302.  
  5303.  
  5304.  
  5305.  
  5306.  
  5307.  
  5308.  
  5309.  
  5310. # 34 "/sprite/lib/include/netEther.h" 2
  5311.  
  5312.  
  5313.  
  5314.  
  5315.  
  5316.  
  5317.  
  5318.  
  5319.  
  5320.  
  5321.  
  5322.  
  5323.  
  5324.  
  5325.  
  5326.  
  5327.  
  5328.  
  5329.  
  5330.  
  5331.  
  5332.  
  5333.  
  5334.  
  5335.  
  5336.  
  5337.  
  5338.  
  5339.  
  5340.  
  5341.  
  5342.  
  5343.  
  5344.  
  5345.  
  5346. typedef struct {
  5347.     unsigned char byte1;
  5348.     unsigned char byte2;
  5349.     unsigned char byte3;
  5350.     unsigned char byte4;
  5351.     unsigned char byte5;
  5352.     unsigned char byte6;
  5353. } Net_EtherAddress;
  5354.  
  5355.  
  5356.  
  5357.  
  5358.  
  5359.  
  5360.  
  5361.  
  5362.  
  5363.  
  5364.  
  5365.  
  5366.  
  5367.  
  5368.  
  5369.  
  5370.  
  5371.  
  5372.  
  5373.  
  5374. # 111 "/sprite/lib/include/netEther.h"
  5375.  
  5376.  
  5377.  
  5378.  
  5379.  
  5380.  
  5381.  
  5382.  
  5383. typedef struct {
  5384.     Net_EtherAddress destination;
  5385.     Net_EtherAddress source;
  5386.     unsigned short   type;         
  5387. } Net_EtherHdr;
  5388.  
  5389.  
  5390.  
  5391.  
  5392.  
  5393.  
  5394.  
  5395.  
  5396.  
  5397.  
  5398.  
  5399. # 149 "/sprite/lib/include/netEther.h"
  5400.  
  5401.  
  5402.  
  5403.  
  5404.  
  5405.  
  5406.  
  5407.  
  5408.  
  5409.  
  5410.  
  5411.  
  5412.  
  5413.  
  5414.  
  5415.  
  5416.  
  5417.  
  5418.  
  5419.  
  5420.  
  5421.  
  5422.  
  5423.  
  5424.  
  5425.  
  5426. # 23 "/sprite/lib/include/kernel/net.h" 2
  5427.  
  5428. # 1 "/sprite/lib/include/kernel/netRoute.h" 1
  5429.  
  5430.  
  5431.  
  5432.  
  5433.  
  5434.  
  5435.  
  5436.  
  5437.  
  5438.  
  5439.  
  5440.  
  5441.  
  5442.  
  5443.  
  5444.  
  5445.  
  5446.  
  5447.  
  5448.  
  5449.  
  5450.  
  5451.  
  5452.  
  5453. # 1 "/sprite/lib/include/netInet.h" 1
  5454.  
  5455.  
  5456.  
  5457.  
  5458.  
  5459.  
  5460.  
  5461.  
  5462.  
  5463.  
  5464.  
  5465.  
  5466.  
  5467.  
  5468.  
  5469.  
  5470.  
  5471.  
  5472.  
  5473.  
  5474.  
  5475. # 1 "/sprite/lib/include/sun4.md/machparam.h" 1
  5476.  
  5477.  
  5478.  
  5479.  
  5480.  
  5481.  
  5482.  
  5483.  
  5484.  
  5485.  
  5486.  
  5487.  
  5488.  
  5489.  
  5490.  
  5491.  
  5492.  
  5493.  
  5494.  
  5495.  
  5496.  
  5497.  
  5498. # 68 "/sprite/lib/include/sun4.md/machparam.h"
  5499.  
  5500. # 22 "/sprite/lib/include/netInet.h" 2
  5501.  
  5502. # 1 "/sprite/lib/include/netEther.h" 1
  5503.  
  5504.  
  5505.  
  5506.  
  5507.  
  5508.  
  5509.  
  5510.  
  5511.  
  5512.  
  5513.  
  5514.  
  5515.  
  5516.  
  5517.  
  5518.  
  5519.  
  5520.  
  5521.  
  5522.  
  5523.  
  5524.  
  5525.  
  5526.  
  5527.  
  5528.  
  5529.  
  5530.  
  5531.  
  5532. # 174 "/sprite/lib/include/netEther.h"
  5533.  
  5534. # 23 "/sprite/lib/include/netInet.h" 2
  5535.  
  5536.  
  5537.  
  5538.  
  5539.  
  5540.  
  5541.  
  5542. typedef unsigned int Net_InetAddress;
  5543.  
  5544.  
  5545.  
  5546.  
  5547.  
  5548.  
  5549. typedef struct { 
  5550.     unsigned short    hardwareType;         
  5551.  
  5552.  
  5553.     unsigned short    protocolType;         
  5554.  
  5555.  
  5556.  
  5557.  
  5558.     unsigned char    hardwareAddrLen;     
  5559.  
  5560.     unsigned char    protocolAddrLen;     
  5561.  
  5562.     unsigned short    opcode;             
  5563. }  Net_ArpHeader;
  5564.  
  5565. typedef struct {
  5566.     Net_EtherHdr    header;             
  5567.     unsigned short    hardwareType;         
  5568.  
  5569.  
  5570.     unsigned short    protocolType;         
  5571.  
  5572.  
  5573.  
  5574.  
  5575.     unsigned char    hardwareAddrLen;     
  5576.  
  5577.     unsigned char    protocolAddrLen;     
  5578.  
  5579.     unsigned short    opcode;             
  5580.     Net_EtherAddress    senderEtherAddr;     
  5581.  
  5582.     Net_InetAddress    senderProtAddr;         
  5583.  
  5584.     Net_EtherAddress    targetEtherAddr;     
  5585.  
  5586.     Net_InetAddress    targetProtAddr;         
  5587. } Net_ArpPacket;
  5588.  
  5589.  
  5590.  
  5591.  
  5592.  
  5593.  
  5594.  
  5595.  
  5596.  
  5597.  
  5598.  
  5599.  
  5600.  
  5601.  
  5602.  
  5603.  
  5604.  
  5605.  
  5606.  
  5607.  
  5608.  
  5609.  
  5610.  
  5611.  
  5612.  
  5613.  
  5614.  
  5615.  
  5616.  
  5617.  
  5618.  
  5619.  
  5620.  
  5621.  
  5622.  
  5623.  
  5624.  
  5625.  
  5626.  
  5627.  
  5628.  
  5629.  
  5630.  
  5631.  
  5632.  
  5633.  
  5634.  
  5635.  
  5636.  
  5637.  
  5638.  
  5639.  
  5640.  
  5641.  
  5642.  
  5643.  
  5644.  
  5645.  
  5646.  
  5647.  
  5648.  
  5649.  
  5650.  
  5651.  
  5652.  
  5653.  
  5654.  
  5655.  
  5656. typedef struct {
  5657.  
  5658.  
  5659.  
  5660.  
  5661.     unsigned int    version:4,
  5662.             headerLen:4;
  5663.  
  5664.     unsigned char    typeOfService;     
  5665.     unsigned short    totalLen;     
  5666.  
  5667.     unsigned short    ident;         
  5668.  
  5669.  
  5670.  
  5671.  
  5672.  
  5673.     unsigned int    flags:3,
  5674.             fragOffset:13;
  5675.  
  5676.     unsigned char    timeToLive;     
  5677.  
  5678.  
  5679.     unsigned char    protocol;     
  5680.  
  5681.     unsigned short    checksum;     
  5682.     Net_InetAddress    source;         
  5683.     Net_InetAddress    dest;         
  5684.      
  5685.  
  5686.  
  5687. } Net_IPHeader;
  5688.  
  5689.  
  5690.  
  5691.  
  5692.  
  5693. typedef struct {
  5694.     Net_InetAddress    source;         
  5695.     Net_InetAddress    dest;         
  5696.     unsigned char    zero;         
  5697.     unsigned char    protocol;     
  5698.     unsigned short    len;         
  5699. } Net_IPPseudoHdr;
  5700.  
  5701.  
  5702.  
  5703.  
  5704.  
  5705.  
  5706.  
  5707.  
  5708.  
  5709.  
  5710.  
  5711.  
  5712.  
  5713.  
  5714.  
  5715.  
  5716.  
  5717.  
  5718.  
  5719.  
  5720.  
  5721.  
  5722.  
  5723.  
  5724.  
  5725.  
  5726.  
  5727.  
  5728.  
  5729.  
  5730.  
  5731.  
  5732.  
  5733.  
  5734.  
  5735.  
  5736.  
  5737.  
  5738.  
  5739.  
  5740.  
  5741.  
  5742.  
  5743.  
  5744.  
  5745.  
  5746.  
  5747.  
  5748.  
  5749.  
  5750.  
  5751.  
  5752.  
  5753.  
  5754.  
  5755.  
  5756.  
  5757.  
  5758.  
  5759.  
  5760.  
  5761.  
  5762.  
  5763.  
  5764.  
  5765.  
  5766.  
  5767.  
  5768.  
  5769.  
  5770.  
  5771.  
  5772.  
  5773.  
  5774.  
  5775.  
  5776.  
  5777.  
  5778.  
  5779.  
  5780.  
  5781.  
  5782.  
  5783.  
  5784.  
  5785.  
  5786.  
  5787.  
  5788.  
  5789.  
  5790.  
  5791.  
  5792.  
  5793.  
  5794.  
  5795.  
  5796.  
  5797.  
  5798.  
  5799.  
  5800.  
  5801.  
  5802.  
  5803.  
  5804.  
  5805.  
  5806.  
  5807.  
  5808.  
  5809.  
  5810.  
  5811.  
  5812.  
  5813.  
  5814.  
  5815.  
  5816.  
  5817.  
  5818.  
  5819.  
  5820.  
  5821.  
  5822.  
  5823.  
  5824.  
  5825.  
  5826.  
  5827.  
  5828.  
  5829.  
  5830.  
  5831.  
  5832.  
  5833.  
  5834.  
  5835.  
  5836.  
  5837.  
  5838.  
  5839.  
  5840.  
  5841. typedef struct {
  5842.     unsigned char    type;
  5843.     unsigned char    len;             
  5844.     unsigned char    pointer;         
  5845.  
  5846.  
  5847.  
  5848.  
  5849.  
  5850.  
  5851.     unsigned int    overflow:4,
  5852.             flags:4;
  5853.  
  5854. } Net_IPTimestampHdr;
  5855.  
  5856.  
  5857.  
  5858.  
  5859.  
  5860.  
  5861.  
  5862.  
  5863.  
  5864.  
  5865.  
  5866.  
  5867. typedef int Net_InetTime;
  5868.  
  5869.  
  5870.  
  5871.  
  5872.  
  5873.  
  5874. typedef struct {
  5875.     unsigned short    srcPort;     
  5876.     unsigned short    destPort;     
  5877.     unsigned int    seqNum;         
  5878.     unsigned int    ackNum;         
  5879.  
  5880.  
  5881.  
  5882.  
  5883.  
  5884.  
  5885.     unsigned int    dataOffset:4,
  5886.             reserved:6,
  5887.             flags:6;
  5888.  
  5889.     unsigned short    window;         
  5890.     unsigned short    checksum;     
  5891.  
  5892.     unsigned short    urgentOffset;     
  5893.  
  5894. } Net_TCPHeader;
  5895.  
  5896.  
  5897.  
  5898.  
  5899.  
  5900.  
  5901.  
  5902.  
  5903.  
  5904.  
  5905.  
  5906.  
  5907.  
  5908.  
  5909.  
  5910.  
  5911.  
  5912.  
  5913.  
  5914.  
  5915.  
  5916.  
  5917.  
  5918.  
  5919.  
  5920.  
  5921.  
  5922.  
  5923.  
  5924.  
  5925.  
  5926.  
  5927.  
  5928.  
  5929.  
  5930.  
  5931.  
  5932.  
  5933.  
  5934.  
  5935.  
  5936.  
  5937. typedef struct {
  5938.     unsigned short    srcPort;     
  5939.     unsigned short    destPort;     
  5940.     unsigned short    len;         
  5941.     unsigned short    checksum;     
  5942.  
  5943. } Net_UDPHeader;
  5944.  
  5945.  
  5946.  
  5947.  
  5948.  
  5949.  
  5950.  
  5951.  
  5952.  
  5953.  
  5954.  
  5955.  
  5956.  
  5957.  
  5958.  
  5959.  
  5960.  
  5961.  
  5962.  
  5963. typedef struct {
  5964.     unsigned char    type;         
  5965.     unsigned char    code;         
  5966.     unsigned short    checksum;     
  5967. } Net_ICMPHeader;
  5968.  
  5969.  
  5970.  
  5971.  
  5972.  
  5973. typedef struct {
  5974.     int            unused;    
  5975.     Net_IPHeader    ipHeader;
  5976.     char        hdrOptions[60  - sizeof(Net_IPHeader)];
  5977.     char        data[8];
  5978. } Net_ICMPDataMisc;
  5979.  
  5980.  
  5981.  
  5982.  
  5983. typedef struct {
  5984.     Net_InetAddress    gatewayAddr;
  5985.     Net_IPHeader    ipHeader;
  5986.     char        hdrOptions[60  - sizeof(Net_IPHeader)];
  5987.     char        data[8];
  5988. } Net_ICMPDataRedir;
  5989.  
  5990.  
  5991.  
  5992.  
  5993. typedef struct {
  5994.     unsigned char    paramOffset;
  5995.     char        unused1;
  5996.     short        unused2;
  5997.     Net_IPHeader    ipHeader;
  5998.     char        hdrOptions[60  - sizeof(Net_IPHeader)];
  5999.     char        data[8];
  6000. } Net_ICMPDataParam;
  6001.  
  6002.  
  6003.  
  6004.  
  6005.  
  6006. typedef struct {
  6007.     unsigned short    id;
  6008.     unsigned short    seqNum;
  6009. } Net_ICMPDataInfoEcho;
  6010.  
  6011.  
  6012.  
  6013.  
  6014.  
  6015. typedef struct {
  6016.     unsigned short    id;
  6017.     unsigned short    seqNum;
  6018.     unsigned int    addrMask;
  6019. } Net_ICMPDataMask;
  6020.  
  6021.  
  6022.  
  6023.  
  6024. typedef struct {
  6025.     unsigned short    id;
  6026.     unsigned short    seqNum;
  6027.     unsigned int    origTime;
  6028.     unsigned int    recvTime;
  6029.     unsigned int    transmitTime;
  6030. } Net_ICMPDataTime;
  6031.  
  6032.  
  6033.  
  6034.  
  6035.  
  6036.  
  6037. typedef struct {
  6038.     Net_ICMPHeader    header;
  6039.     union {
  6040.     Net_ICMPDataMisc    overlay;     
  6041.  
  6042.     Net_ICMPDataMisc    unreach;     
  6043.     Net_ICMPDataMisc    timeExceed;     
  6044.     Net_ICMPDataMisc    quench;         
  6045.     Net_ICMPDataParam    param;         
  6046.     Net_ICMPDataRedir    redirect;     
  6047.     Net_ICMPDataTime    timeStamp;     
  6048.     Net_ICMPDataMask    mask;         
  6049.     Net_ICMPDataInfoEcho    info;         
  6050.     Net_ICMPDataInfoEcho    echo;         
  6051.     } data;
  6052. } Net_ICMPPacket;
  6053.  
  6054.  
  6055.  
  6056.  
  6057.  
  6058.  
  6059.  
  6060.  
  6061.  
  6062.  
  6063.  
  6064.  
  6065.  
  6066.  
  6067.  
  6068.  
  6069.  
  6070.  
  6071.  
  6072.  
  6073.  
  6074.  
  6075.  
  6076.  
  6077.  
  6078.  
  6079.  
  6080.  
  6081.  
  6082.  
  6083.  
  6084.  
  6085.  
  6086.  
  6087.  
  6088.  
  6089.  
  6090.  
  6091.  
  6092.  
  6093.  
  6094.  
  6095.  
  6096.  
  6097.  
  6098. typedef struct {
  6099.     short        addrFamily;     
  6100.     unsigned short    port;
  6101.     Net_InetAddress    address;
  6102.     char        padding[8];     
  6103. } Net_InetSocketAddr;
  6104.  
  6105.  
  6106. # 25 "/sprite/lib/include/kernel/netRoute.h" 2
  6107.  
  6108.  
  6109.  
  6110.  
  6111.  
  6112.  
  6113.  
  6114.  
  6115.  
  6116.  
  6117.  
  6118.  
  6119.  
  6120. typedef struct Net_Route {
  6121.     int        flags;         
  6122.     int        spriteID;     
  6123.     int        type;         
  6124.     Address    data;         
  6125.     char     *name;         
  6126.     char    *machType;     
  6127.  
  6128. } Net_Route;
  6129.  
  6130.  
  6131.  
  6132.  
  6133.  
  6134.  
  6135.  
  6136.  
  6137.  
  6138.  
  6139.  
  6140.  
  6141.  
  6142.  
  6143.  
  6144.  
  6145.  
  6146.  
  6147.  
  6148.  
  6149.  
  6150.  
  6151.  
  6152.  
  6153.  
  6154.  
  6155.  
  6156.  
  6157.  
  6158.  
  6159.  
  6160.  
  6161. extern Net_Route *netRouteArray[];
  6162.  
  6163.  
  6164.  
  6165.  
  6166.  
  6167. typedef struct NetInetRoute {
  6168.     Net_InetAddress inetAddr;
  6169.     Net_EtherAddress gatewayAddress;
  6170. } NetInetRoute;
  6171.  
  6172.  
  6173.  
  6174.  
  6175.  
  6176.  
  6177.  
  6178.  
  6179.  
  6180.  
  6181.  
  6182.  
  6183.  
  6184.  
  6185.  
  6186.  
  6187.  
  6188. typedef struct NetSpriteArp {
  6189.     Net_ArpHeader arpHeader;     
  6190.  
  6191.     unsigned char arpData[(2 * (sizeof(Net_EtherAddress) + sizeof(int))) ];
  6192. } NetSpriteArp;
  6193.  
  6194.  
  6195.  
  6196.  
  6197.  
  6198.  
  6199.  
  6200.  
  6201.  
  6202.  
  6203.  
  6204.  
  6205.  
  6206.  
  6207.  
  6208.  
  6209.  
  6210.  
  6211.  
  6212.  
  6213.  
  6214.  
  6215.  
  6216.  
  6217. extern void     NetArpInput();
  6218.  
  6219.  
  6220. # 24 "/sprite/lib/include/kernel/net.h" 2
  6221.  
  6222. # 1 "/sprite/lib/include/kernel/user/net.h" 1
  6223.  
  6224.  
  6225.  
  6226.  
  6227.  
  6228.  
  6229.  
  6230.  
  6231.  
  6232.  
  6233.  
  6234.  
  6235.  
  6236.  
  6237.  
  6238.  
  6239.  
  6240.  
  6241.  
  6242.  
  6243. # 1 "/sprite/lib/include/sun4.md/machparam.h" 1
  6244.  
  6245.  
  6246.  
  6247.  
  6248.  
  6249.  
  6250.  
  6251.  
  6252.  
  6253.  
  6254.  
  6255.  
  6256.  
  6257.  
  6258.  
  6259.  
  6260.  
  6261.  
  6262.  
  6263.  
  6264.  
  6265.  
  6266. # 68 "/sprite/lib/include/sun4.md/machparam.h"
  6267.  
  6268. # 21 "/sprite/lib/include/kernel/user/net.h" 2
  6269.  
  6270. # 1 "/sprite/lib/include/kernel/user/netEther.h" 1
  6271.  
  6272.  
  6273.  
  6274.  
  6275.  
  6276.  
  6277.  
  6278.  
  6279.  
  6280.  
  6281.  
  6282.  
  6283.  
  6284.  
  6285.  
  6286.  
  6287.  
  6288.  
  6289.  
  6290.  
  6291.  
  6292.  
  6293.  
  6294.  
  6295.  
  6296.  
  6297.  
  6298.  
  6299.  
  6300. # 174 "/sprite/lib/include/kernel/user/netEther.h"
  6301.  
  6302. # 22 "/sprite/lib/include/kernel/user/net.h" 2
  6303.  
  6304. # 1 "/sprite/lib/include/kernel/user/netInet.h" 1
  6305.  
  6306.  
  6307.  
  6308.  
  6309.  
  6310.  
  6311.  
  6312.  
  6313.  
  6314.  
  6315.  
  6316.  
  6317.  
  6318.  
  6319.  
  6320.  
  6321.  
  6322.  
  6323. # 593 "/sprite/lib/include/kernel/user/netInet.h"
  6324.  
  6325. # 23 "/sprite/lib/include/kernel/user/net.h" 2
  6326.  
  6327. # 1 "/sprite/lib/include/kernel/user/netUltra.h" 1
  6328.  
  6329.  
  6330.  
  6331.  
  6332.  
  6333.  
  6334.  
  6335.  
  6336.  
  6337.  
  6338.  
  6339.  
  6340.  
  6341.  
  6342.  
  6343.  
  6344.  
  6345.  
  6346.  
  6347.  
  6348. # 1 "/sprite/lib/include/sun4.md/machparam.h" 1
  6349.  
  6350.  
  6351.  
  6352.  
  6353.  
  6354.  
  6355.  
  6356.  
  6357.  
  6358.  
  6359.  
  6360.  
  6361.  
  6362.  
  6363.  
  6364.  
  6365.  
  6366.  
  6367.  
  6368.  
  6369.  
  6370.  
  6371. # 68 "/sprite/lib/include/sun4.md/machparam.h"
  6372.  
  6373. # 21 "/sprite/lib/include/kernel/user/netUltra.h" 2
  6374.  
  6375.  
  6376.  
  6377.  
  6378. typedef struct Net_UltraAddress {
  6379.     char        pad1[4];     
  6380.  
  6381.     unsigned int    group:10;     
  6382.     unsigned int    unit:6;         
  6383.     char        pad2[2];     
  6384.  
  6385. } Net_UltraAddress;
  6386.  
  6387. # 45 "/sprite/lib/include/kernel/user/netUltra.h"
  6388.  
  6389.  
  6390.  
  6391.  
  6392.  
  6393.  
  6394.  
  6395.  
  6396.  
  6397. typedef struct Net_UltraTLAddress {
  6398.     unsigned char    addressSize;     
  6399.     unsigned char    tsapSize;     
  6400.     char        tsap[4];     
  6401.     Net_UltraAddress    address;     
  6402. } Net_UltraTLAddress;
  6403.  
  6404.  
  6405.  
  6406.  
  6407.  
  6408.  
  6409.  
  6410.  
  6411. typedef struct Net_UltraHeader {
  6412.     unsigned char    cmd;         
  6413.     unsigned char    status;         
  6414.     unsigned short    reference;     
  6415.     int            foo;         
  6416.     Address        buffer;         
  6417.     int            size;         
  6418.     Net_UltraTLAddress    remoteAddress;     
  6419.     unsigned short    pad1;
  6420.     Net_UltraTLAddress    localAddress;     
  6421.     unsigned short    pad2;
  6422.     unsigned short    options;     
  6423.     unsigned short    quality;     
  6424.     unsigned int    pad3;
  6425. } Net_UltraHeader;
  6426.  
  6427.  
  6428.  
  6429.  
  6430.  
  6431.  
  6432.  
  6433.  
  6434.  
  6435.  
  6436. # 24 "/sprite/lib/include/kernel/user/net.h" 2
  6437.  
  6438. # 1 "/sprite/lib/include/kernel/user/sprite.h" 1
  6439.  
  6440.  
  6441.  
  6442.  
  6443.  
  6444.  
  6445.  
  6446.  
  6447.  
  6448.  
  6449.  
  6450.  
  6451.  
  6452.  
  6453.  
  6454.  
  6455.  
  6456. # 94 "/sprite/lib/include/kernel/user/sprite.h"
  6457.  
  6458. # 25 "/sprite/lib/include/kernel/user/net.h" 2
  6459.  
  6460.  
  6461.  
  6462.  
  6463.  
  6464.  
  6465. typedef union Net_Address {
  6466.     Net_EtherAddress        ether;
  6467.     Net_InetAddress        inet;
  6468.     Net_UltraAddress        ultra;
  6469.     struct { char data[8]; }     generic;
  6470. } Net_Address;
  6471.  
  6472.  
  6473.  
  6474.  
  6475.  
  6476.  
  6477.  
  6478.  
  6479.  
  6480.  
  6481.  
  6482.  
  6483.  
  6484.  
  6485.  
  6486.  
  6487.  
  6488.  
  6489.  
  6490.  
  6491.  
  6492.  
  6493.  
  6494.  
  6495.  
  6496.  
  6497.  
  6498.  
  6499.  
  6500.  
  6501.  
  6502.  
  6503.  
  6504.  
  6505.  
  6506.  
  6507.  
  6508.  
  6509. typedef int Net_NetworkType;
  6510.  
  6511.  
  6512.  
  6513.  
  6514.  
  6515.  
  6516.  
  6517.  
  6518.  
  6519.  
  6520.  
  6521. typedef union Net_Header {
  6522.     Net_EtherHdr    etherHdr;     
  6523.     struct {                 
  6524.     Net_EtherHdr    etherHdr;
  6525.     Net_IPHeader    ipHdr;
  6526.     } inetHdr;        
  6527. } Net_Header;
  6528.  
  6529.  
  6530.  
  6531.  
  6532.  
  6533.  
  6534.  
  6535.  
  6536. typedef struct Net_RouteInfo {
  6537.     int            version;     
  6538.     int            spriteID;     
  6539.     int            interface;     
  6540.  
  6541.     int            protocol;     
  6542.     int            flags;         
  6543.     int            refCount;     
  6544.  
  6545.     int            routeID;     
  6546.     int            maxBytes;     
  6547.  
  6548.  
  6549.     int            minBytes;     
  6550.  
  6551.  
  6552.     Net_NetworkType    netType;     
  6553.     Net_Address        netAddress[2 ];     
  6554.  
  6555.  
  6556.     char        name[100];     
  6557.     char        hostname[100];     
  6558.     char        machType[100];     
  6559.     Net_Header        header;         
  6560. } Net_RouteInfo;
  6561.  
  6562.  
  6563.  
  6564.  
  6565.  
  6566.  
  6567.  
  6568.  
  6569.  
  6570.  
  6571.  
  6572.  
  6573.  
  6574.  
  6575. extern ReturnStatus Net_InstallRoute();
  6576.  
  6577.  
  6578.  
  6579.  
  6580.  
  6581.  
  6582.  
  6583.  
  6584.  
  6585. typedef struct {
  6586.     char    data[14];
  6587. } Net_GenericAddress;
  6588.  
  6589.  
  6590.  
  6591.  
  6592.  
  6593. typedef struct Net_SpriteRoute {
  6594.     int        flags;         
  6595.     int        spriteID;     
  6596.     int        type;         
  6597.     union {
  6598.     Net_EtherHdr    etherHdr;     
  6599.     char        data[14];     
  6600.     struct {
  6601.         Net_EtherHdr    etherHdr;
  6602.         Net_IPHeader    ipHdr;
  6603.     } inetHdr;             
  6604.     } route;
  6605. } Net_SpriteRoute;
  6606.  
  6607.  
  6608.  
  6609.  
  6610.  
  6611.  
  6612. extern Net_InetAddress    Net_StringToInetAddr();
  6613. extern ReturnStatus    Net_StringToAddr();
  6614. extern char         *Net_InetAddrToString();
  6615. extern unsigned int    Net_StringToNetNum();
  6616. extern unsigned int    Net_InetAddrHostNum();
  6617. extern unsigned int    Net_InetAddrNetNum();
  6618. extern unsigned int    Net_InetAddrNetMask();
  6619. extern Net_InetAddress    Net_MakeInetAddr();
  6620. extern char         *Net_EtherAddrToString();
  6621. extern void        Net_StringToEtherAddr();
  6622. extern unsigned short    Net_InetChecksum();
  6623. extern unsigned short    Net_InetChecksum2();
  6624.  
  6625.  
  6626.  
  6627.  
  6628.  
  6629.  
  6630.  
  6631.  
  6632.  
  6633.  
  6634.  
  6635.  
  6636.  
  6637.  
  6638.  
  6639.  
  6640.  
  6641. # 25 "/sprite/lib/include/kernel/net.h" 2
  6642.  
  6643. # 1 "/sprite/lib/include/kernel/sync.h" 1
  6644.  
  6645.  
  6646.  
  6647.  
  6648.  
  6649.  
  6650.  
  6651.  
  6652.  
  6653.  
  6654.  
  6655.  
  6656.  
  6657.  
  6658.  
  6659.  
  6660.  
  6661.  
  6662.  
  6663.  
  6664.  
  6665.  
  6666.  
  6667.  
  6668.  
  6669.  
  6670.  
  6671.  
  6672.  
  6673.  
  6674.  
  6675.  
  6676.  
  6677.  
  6678.  
  6679.  
  6680.  
  6681.  
  6682.  
  6683.  
  6684.  
  6685.  
  6686.  
  6687.  
  6688.  
  6689.  
  6690.  
  6691.  
  6692.  
  6693.  
  6694. # 1 "/sprite/lib/include/sprite.h" 1
  6695.  
  6696.  
  6697.  
  6698.  
  6699.  
  6700.  
  6701.  
  6702.  
  6703.  
  6704.  
  6705.  
  6706.  
  6707.  
  6708.  
  6709.  
  6710.  
  6711.  
  6712. # 94 "/sprite/lib/include/sprite.h"
  6713.  
  6714. # 51 "/sprite/lib/include/kernel/sync.h" 2
  6715.  
  6716. # 1 "/sprite/lib/include/list.h" 1
  6717.  
  6718.  
  6719.  
  6720.  
  6721.  
  6722.  
  6723.  
  6724.  
  6725.  
  6726.  
  6727.  
  6728.  
  6729.  
  6730.  
  6731.  
  6732.  
  6733.  
  6734.  
  6735.  
  6736.  
  6737.  
  6738.  
  6739.  
  6740.  
  6741.  
  6742.  
  6743.  
  6744.  
  6745.  
  6746.  
  6747.  
  6748.  
  6749.  
  6750.  
  6751.  
  6752.  
  6753.  
  6754.  
  6755.  
  6756.  
  6757.  
  6758.  
  6759.  
  6760.  
  6761.  
  6762.  
  6763.  
  6764.  
  6765.  
  6766.  
  6767.  
  6768.  
  6769.  
  6770.  
  6771.  
  6772.  
  6773.  
  6774.  
  6775.  
  6776.  
  6777.  
  6778.  
  6779.  
  6780.  
  6781.  
  6782.  
  6783.  
  6784.  
  6785.  
  6786.  
  6787.  
  6788.  
  6789.  
  6790.  
  6791.  
  6792. typedef struct List_Links {
  6793.     struct List_Links *prevPtr;
  6794.     struct List_Links *nextPtr;
  6795. } List_Links;
  6796.  
  6797.  
  6798.  
  6799.  
  6800.  
  6801. void    List_Init();     
  6802. void    List_Insert();   
  6803. void    List_ListInsert();   
  6804. void     List_Remove();   
  6805. void     List_Move();     
  6806.  
  6807.  
  6808.  
  6809.  
  6810.  
  6811.  
  6812.  
  6813.  
  6814.  
  6815.  
  6816.  
  6817.  
  6818.  
  6819.  
  6820.     
  6821.  
  6822.  
  6823.  
  6824.  
  6825.  
  6826.  
  6827.  
  6828.  
  6829.  
  6830.  
  6831.  
  6832.  
  6833.  
  6834.  
  6835.  
  6836.  
  6837.  
  6838.  
  6839.  
  6840.  
  6841.  
  6842.  
  6843.  
  6844.  
  6845.  
  6846.  
  6847.  
  6848.  
  6849.  
  6850.  
  6851.  
  6852.  
  6853.  
  6854.  
  6855.  
  6856.  
  6857.  
  6858.  
  6859.  
  6860.  
  6861.  
  6862.  
  6863.  
  6864.  
  6865.  
  6866.  
  6867.  
  6868.  
  6869.  
  6870.  
  6871.  
  6872.  
  6873.  
  6874.  
  6875.  
  6876.  
  6877.  
  6878.  
  6879.  
  6880.  
  6881.  
  6882.  
  6883.  
  6884.  
  6885.  
  6886.  
  6887.  
  6888.  
  6889.  
  6890.  
  6891.  
  6892.  
  6893.  
  6894.  
  6895.  
  6896.  
  6897.  
  6898.  
  6899.  
  6900.  
  6901.  
  6902.  
  6903.  
  6904.  
  6905.  
  6906.  
  6907.  
  6908.  
  6909.  
  6910.  
  6911.  
  6912.  
  6913.  
  6914.  
  6915.  
  6916.  
  6917.  
  6918.  
  6919.  
  6920.  
  6921.  
  6922.  
  6923.  
  6924.  
  6925.  
  6926.  
  6927.  
  6928.  
  6929.  
  6930.  
  6931.  
  6932.  
  6933.  
  6934.  
  6935.  
  6936.  
  6937.  
  6938.  
  6939.  
  6940.  
  6941.  
  6942.  
  6943.  
  6944.  
  6945.  
  6946.  
  6947.  
  6948.  
  6949.  
  6950.  
  6951.  
  6952.  
  6953.  
  6954.  
  6955.  
  6956.  
  6957.  
  6958.  
  6959.  
  6960.  
  6961.  
  6962.  
  6963.  
  6964.  
  6965.  
  6966.  
  6967.  
  6968.  
  6969.  
  6970.  
  6971.  
  6972.  
  6973.  
  6974.  
  6975.  
  6976.  
  6977.  
  6978.  
  6979.  
  6980.  
  6981.  
  6982.  
  6983.  
  6984.  
  6985.  
  6986.  
  6987. # 52 "/sprite/lib/include/kernel/sync.h" 2
  6988.  
  6989.  
  6990.  
  6991.  
  6992.  
  6993.  
  6994.  
  6995.  
  6996.  
  6997. # 1 "/sprite/lib/include/sync.h" 1
  6998.  
  6999.  
  7000.  
  7001.  
  7002.  
  7003.  
  7004.  
  7005.  
  7006.  
  7007.  
  7008.  
  7009.  
  7010.  
  7011.  
  7012.  
  7013.  
  7014.  
  7015.  
  7016.  
  7017.  
  7018.  
  7019.  
  7020.  
  7021.  
  7022.  
  7023.  
  7024.  
  7025.  
  7026.  
  7027.  
  7028.  
  7029.  
  7030.  
  7031.  
  7032.  
  7033.  
  7034.  
  7035.  
  7036.  
  7037.  
  7038.  
  7039.  
  7040.  
  7041.  
  7042.  
  7043.  
  7044.  
  7045.  
  7046.  
  7047. typedef struct Sync_UserLock {
  7048.     Boolean inUse;         
  7049.     Boolean waiting;         
  7050. } Sync_UserLock;
  7051.  
  7052.  
  7053. typedef Sync_UserLock Sync_Lock;      
  7054.  
  7055.  
  7056.  
  7057.  
  7058.  
  7059.  
  7060.  
  7061.  
  7062.  
  7063.  
  7064.  
  7065. typedef struct Sync_Condition {
  7066.     Boolean waiting;         
  7067. } Sync_Condition;
  7068.  
  7069.  
  7070.  
  7071.  
  7072.  
  7073.  
  7074.  
  7075.  
  7076.  
  7077.  
  7078.  
  7079.  
  7080.  
  7081.  
  7082.  
  7083.  
  7084.  
  7085.  
  7086.  
  7087.  
  7088.  
  7089. typedef struct {
  7090.     int        inUse;                 
  7091.     int        class;                 
  7092.     int        hit;                 
  7093.     int        miss;                 
  7094.     char    name[30];             
  7095.     int        priorCount;             
  7096.     int        priorTypes[1 ];     
  7097.     int        activeCount;             
  7098.     int        deadCount;             
  7099.     int        spinCount;             
  7100. } Sync_LockStat;
  7101.  
  7102.  
  7103.  
  7104.  
  7105.  
  7106.  
  7107.  
  7108.  
  7109.  
  7110.  
  7111.  
  7112.  
  7113.  
  7114.  
  7115.  
  7116.  
  7117.  
  7118.  
  7119.  
  7120.  
  7121.  
  7122.  
  7123.  
  7124.  
  7125.  
  7126.  
  7127.  
  7128.  
  7129.  
  7130.  
  7131.  
  7132.  
  7133.  
  7134.  
  7135.  
  7136.  
  7137.  
  7138.  
  7139.  
  7140.  
  7141.  
  7142.  
  7143.  
  7144.  
  7145.  
  7146.  
  7147.  
  7148.  
  7149.  
  7150.  
  7151.  
  7152.  
  7153.  
  7154.  
  7155.  
  7156.  
  7157.  
  7158.  
  7159.  
  7160.  
  7161.  
  7162.  
  7163.  
  7164.  
  7165.  
  7166.  
  7167.  
  7168.  
  7169.  
  7170.  
  7171.  
  7172.  
  7173.  
  7174.  
  7175.  
  7176.  
  7177.  
  7178.  
  7179.  
  7180.  
  7181.  
  7182.  
  7183.  
  7184.  
  7185.  
  7186.  
  7187.  
  7188.  
  7189.  
  7190.  
  7191.  
  7192.  
  7193.  
  7194.  
  7195.  
  7196.  
  7197.  
  7198.  
  7199.  
  7200.  
  7201. extern ReturnStatus    Sync_GetLock();
  7202. extern ReturnStatus    Sync_Unlock();
  7203. extern ReturnStatus    Sync_SlowLock();
  7204. extern ReturnStatus    Sync_SlowWait();
  7205. extern ReturnStatus    Sync_SlowBroadcast();
  7206.  
  7207.  
  7208. # 61 "/sprite/lib/include/kernel/sync.h" 2
  7209.  
  7210. # 1 "/sprite/lib/include/kernel/proc.h" 1
  7211.  
  7212.  
  7213.  
  7214.  
  7215.  
  7216.  
  7217.  
  7218.  
  7219.  
  7220.  
  7221.  
  7222.  
  7223.  
  7224.  
  7225.  
  7226.  
  7227.  
  7228.  
  7229.  
  7230.  
  7231.  
  7232.  
  7233. # 31 "/sprite/lib/include/kernel/proc.h"
  7234.  
  7235. # 1 "/sprite/lib/include/proc.h" 1
  7236.  
  7237.  
  7238.  
  7239.  
  7240.  
  7241.  
  7242.  
  7243.  
  7244.  
  7245.  
  7246.  
  7247.  
  7248.  
  7249.  
  7250.  
  7251.  
  7252.  
  7253. # 590 "/sprite/lib/include/proc.h"
  7254.  
  7255. # 32 "/sprite/lib/include/kernel/proc.h" 2
  7256.  
  7257. # 1 "/sprite/lib/include/sync.h" 1
  7258.  
  7259.  
  7260.  
  7261.  
  7262.  
  7263.  
  7264.  
  7265.  
  7266.  
  7267.  
  7268.  
  7269.  
  7270.  
  7271.  
  7272.  
  7273.  
  7274.  
  7275.  
  7276.  
  7277.  
  7278.  
  7279.  
  7280.  
  7281.  
  7282.  
  7283.  
  7284.  
  7285. # 210 "/sprite/lib/include/sync.h"
  7286.  
  7287. # 33 "/sprite/lib/include/kernel/proc.h" 2
  7288.  
  7289. # 1 "/sprite/lib/include/kernel/syncLock.h" 1
  7290.  
  7291.  
  7292.  
  7293.  
  7294.  
  7295.  
  7296.  
  7297.  
  7298.  
  7299.  
  7300.  
  7301.  
  7302.  
  7303.  
  7304.  
  7305.  
  7306.  
  7307.  
  7308.  
  7309.  
  7310.  
  7311.  
  7312.  
  7313.  
  7314.  
  7315.  
  7316.  
  7317. # 1 "/sprite/lib/include/list.h" 1
  7318.  
  7319.  
  7320.  
  7321.  
  7322.  
  7323.  
  7324.  
  7325.  
  7326.  
  7327.  
  7328.  
  7329.  
  7330.  
  7331.  
  7332.  
  7333.  
  7334.  
  7335. # 270 "/sprite/lib/include/list.h"
  7336.  
  7337. # 28 "/sprite/lib/include/kernel/syncLock.h" 2
  7338.  
  7339. # 1 "/sprite/lib/include/user/sync.h" 1
  7340.  
  7341.  
  7342.  
  7343.  
  7344.  
  7345.  
  7346.  
  7347.  
  7348.  
  7349.  
  7350.  
  7351.  
  7352.  
  7353.  
  7354.  
  7355.  
  7356.  
  7357.  
  7358.  
  7359.  
  7360.  
  7361.  
  7362.  
  7363.  
  7364.  
  7365.  
  7366.  
  7367. # 210 "/sprite/lib/include/user/sync.h"
  7368.  
  7369. # 29 "/sprite/lib/include/kernel/syncLock.h" 2
  7370.  
  7371.  
  7372.  
  7373.  
  7374.  
  7375.  
  7376.  
  7377.  
  7378.  
  7379.  
  7380.  
  7381.  
  7382.  
  7383.  
  7384.  
  7385.  
  7386.  
  7387.  
  7388.  
  7389.  
  7390.  
  7391.  
  7392.  
  7393.  
  7394.  
  7395.  
  7396.  
  7397.  
  7398.  
  7399.  
  7400.  
  7401.  
  7402.  
  7403.  
  7404.  
  7405.  
  7406.  
  7407.  
  7408.  
  7409.  
  7410.  
  7411.  
  7412. typedef struct Sync_ListInfo {
  7413.     List_Links    links;         
  7414.     Address    lock;         
  7415.  
  7416. } Sync_ListInfo;
  7417.  
  7418.  
  7419.  
  7420.  
  7421.  
  7422.  
  7423.  
  7424.  
  7425. typedef enum Sync_LockClass {
  7426.     SYNC_SEMAPHORE,            
  7427.     SYNC_LOCK
  7428. } Sync_LockClass;
  7429.  
  7430.  
  7431.  
  7432.  
  7433. typedef struct Sync_Semaphore {
  7434.      
  7435.  
  7436.  
  7437.     int value;                 
  7438.  
  7439. # 107 "/sprite/lib/include/kernel/syncLock.h"
  7440.  
  7441.  
  7442.  
  7443.     char *name;                 
  7444.     Address holderPC;             
  7445.     Address holderPCBPtr;         
  7446.  
  7447.  
  7448.  
  7449.  
  7450.  
  7451.  
  7452.  
  7453.  
  7454. } Sync_Semaphore;
  7455.  
  7456.  
  7457.  
  7458.  
  7459.  
  7460. typedef struct Sync_KernelLock{
  7461.      
  7462.  
  7463.  
  7464.     Boolean inUse;             
  7465.     Boolean waiting;                 
  7466. # 142 "/sprite/lib/include/kernel/syncLock.h"
  7467.  
  7468.  
  7469.  
  7470.     char *name;                 
  7471.     Address holderPC;             
  7472.     Address holderPCBPtr;         
  7473.  
  7474.  
  7475.  
  7476.  
  7477.  
  7478.  
  7479.  
  7480.  
  7481. } Sync_KernelLock;
  7482.  
  7483.  
  7484.  
  7485.  
  7486.  
  7487.  
  7488.  
  7489.  
  7490.  
  7491. # 34 "/sprite/lib/include/kernel/proc.h" 2
  7492.  
  7493. # 1 "/sprite/lib/include/list.h" 1
  7494.  
  7495.  
  7496.  
  7497.  
  7498.  
  7499.  
  7500.  
  7501.  
  7502.  
  7503.  
  7504.  
  7505.  
  7506.  
  7507.  
  7508.  
  7509.  
  7510.  
  7511. # 270 "/sprite/lib/include/list.h"
  7512.  
  7513. # 35 "/sprite/lib/include/kernel/proc.h" 2
  7514.  
  7515. # 1 "/sprite/lib/include/kernel/timer.h" 1
  7516.  
  7517.  
  7518.  
  7519.  
  7520.  
  7521.  
  7522.  
  7523.  
  7524.  
  7525.  
  7526.  
  7527.  
  7528.  
  7529.  
  7530.  
  7531.  
  7532.  
  7533.  
  7534.  
  7535.  
  7536. # 1 "/sprite/lib/include/list.h" 1
  7537.  
  7538.  
  7539.  
  7540.  
  7541.  
  7542.  
  7543.  
  7544.  
  7545.  
  7546.  
  7547.  
  7548.  
  7549.  
  7550.  
  7551.  
  7552.  
  7553.  
  7554. # 270 "/sprite/lib/include/list.h"
  7555.  
  7556. # 21 "/sprite/lib/include/kernel/timer.h" 2
  7557.  
  7558.  
  7559.  
  7560.  
  7561.  
  7562.  
  7563.  
  7564.  
  7565. # 1 "/sprite/lib/include/spriteTime.h" 1
  7566.  
  7567.  
  7568.  
  7569.  
  7570.  
  7571.  
  7572.  
  7573.  
  7574.  
  7575.  
  7576.  
  7577.  
  7578.  
  7579.  
  7580.  
  7581.  
  7582.  
  7583. # 142 "/sprite/lib/include/spriteTime.h"
  7584.  
  7585. # 29 "/sprite/lib/include/kernel/timer.h" 2
  7586.  
  7587. # 1 "/sprite/lib/include/sun4.md/kernel/timerTick.h" 1
  7588.  
  7589.  
  7590.  
  7591.  
  7592.  
  7593.  
  7594.  
  7595.  
  7596.  
  7597.  
  7598.  
  7599.  
  7600.  
  7601.  
  7602.  
  7603.  
  7604.  
  7605.  
  7606.  
  7607.  
  7608. # 1 "/sprite/lib/include/spriteTime.h" 1
  7609.  
  7610.  
  7611.  
  7612.  
  7613.  
  7614.  
  7615.  
  7616.  
  7617.  
  7618.  
  7619.  
  7620.  
  7621.  
  7622.  
  7623.  
  7624.  
  7625.  
  7626. # 142 "/sprite/lib/include/spriteTime.h"
  7627.  
  7628. # 21 "/sprite/lib/include/sun4.md/kernel/timerTick.h" 2
  7629.  
  7630.  
  7631.  
  7632.  
  7633.  
  7634.  
  7635.  
  7636.  
  7637.  
  7638. typedef Time Timer_Ticks;
  7639.  
  7640.  
  7641.  
  7642.  
  7643.  
  7644.  
  7645.  
  7646.  extern unsigned int     timer_IntZeroSeconds; 
  7647.  extern unsigned int     timer_IntOneMillisecond;   
  7648.  extern unsigned int     timer_IntOneSecond;
  7649.  extern unsigned int     timer_IntOneMinute;
  7650.  extern unsigned int     timer_IntOneHour; 
  7651.  extern Timer_Ticks    timer_TicksZeroSeconds;
  7652.  extern Time         timer_MaxIntervalTime; 
  7653.  
  7654.  
  7655.  
  7656.  
  7657.  
  7658.  
  7659.  
  7660.  
  7661.  
  7662.  
  7663.  
  7664.  
  7665.  
  7666.  
  7667.  
  7668.  
  7669.  
  7670.  
  7671.  
  7672.  
  7673.  
  7674.  
  7675.  
  7676.  
  7677.  
  7678.  
  7679.  
  7680.  
  7681. extern void Timer_AddIntervalToTicks();
  7682. extern void Timer_GetCurrentTicks();
  7683.  
  7684.  
  7685.  
  7686.  
  7687.  
  7688.  
  7689.  
  7690.  
  7691.  
  7692.  
  7693.  
  7694.  
  7695.  
  7696.  
  7697.  
  7698.  
  7699.  
  7700.  
  7701.  
  7702.  
  7703.  
  7704.  
  7705.  
  7706.  
  7707.  
  7708.  
  7709.  
  7710.  
  7711.  
  7712.  
  7713.  
  7714.  
  7715.  
  7716.  
  7717.  
  7718.  
  7719.  
  7720.  
  7721.  
  7722. # 30 "/sprite/lib/include/kernel/timer.h" 2
  7723.  
  7724. # 1 "/sprite/lib/include/sun4.md/kernel/timerMach.h" 1
  7725.  
  7726.  
  7727.  
  7728.  
  7729.  
  7730.  
  7731.  
  7732.  
  7733.  
  7734.  
  7735.  
  7736.  
  7737.  
  7738.  
  7739.  
  7740.  
  7741.  
  7742.  
  7743.  
  7744.  
  7745.  
  7746.  
  7747.  
  7748.  
  7749.  
  7750.  
  7751.  
  7752.  
  7753.  
  7754.  
  7755. # 31 "/sprite/lib/include/kernel/timer.h" 2
  7756.  
  7757. # 1 "/sprite/lib/include/kernel/syncLock.h" 1
  7758.  
  7759.  
  7760.  
  7761.  
  7762.  
  7763.  
  7764.  
  7765.  
  7766.  
  7767.  
  7768.  
  7769.  
  7770.  
  7771.  
  7772.  
  7773.  
  7774.  
  7775.  
  7776.  
  7777.  
  7778. # 164 "/sprite/lib/include/kernel/syncLock.h"
  7779.  
  7780.  
  7781. # 32 "/sprite/lib/include/kernel/timer.h" 2
  7782.  
  7783.  
  7784.  
  7785.  
  7786.  
  7787.  
  7788.  
  7789.  
  7790.  
  7791.  
  7792.  
  7793.  
  7794.  
  7795.  
  7796.  
  7797.  
  7798.  
  7799.  
  7800.  
  7801.  
  7802.  
  7803.  
  7804.  
  7805.  
  7806.  
  7807.  
  7808.  
  7809.  
  7810.  
  7811.  
  7812.  
  7813.  
  7814.  
  7815.  
  7816.  
  7817.  
  7818.  
  7819.  
  7820.  
  7821.  
  7822.  
  7823.  
  7824.  
  7825.  
  7826.  
  7827.  
  7828.  
  7829.  
  7830.  
  7831.  
  7832.  
  7833.  
  7834.  
  7835.  
  7836.  
  7837.  
  7838.  
  7839.  
  7840.  
  7841.  
  7842.  
  7843.  
  7844.  
  7845.  
  7846.  
  7847.  
  7848.  
  7849.  
  7850.  
  7851.  
  7852.  
  7853.  
  7854.  
  7855.  
  7856.  
  7857.  
  7858.  
  7859.  
  7860.  
  7861.  
  7862.  
  7863.  
  7864.  
  7865.  
  7866.  
  7867.  
  7868.  
  7869.  
  7870.  
  7871.  
  7872.  
  7873.  
  7874.  
  7875.  
  7876.  
  7877.  
  7878.  
  7879.  
  7880.  
  7881.  
  7882.  
  7883.  
  7884.  
  7885.  
  7886.  
  7887.  
  7888.  
  7889.  
  7890.  
  7891.  
  7892.  
  7893.  
  7894.  
  7895.  
  7896.  
  7897.  
  7898.  
  7899.  
  7900.  
  7901.  
  7902.  
  7903.  
  7904.  
  7905.  
  7906.  
  7907.  
  7908.  
  7909.  
  7910.  
  7911.  
  7912.  
  7913.  
  7914.  
  7915.  
  7916.   
  7917.  
  7918.  
  7919.  
  7920.  
  7921.  
  7922.  
  7923.  
  7924.  
  7925.  
  7926.  
  7927.  
  7928.  
  7929.  
  7930.  
  7931.  
  7932.  
  7933.  
  7934.  
  7935.  
  7936.  
  7937.  
  7938.  
  7939.  
  7940.  
  7941.  
  7942.  
  7943.  
  7944.  
  7945.  
  7946.  
  7947.  
  7948.  
  7949.  
  7950. typedef struct {
  7951.     List_Links    links;         
  7952.  
  7953.     void    (*routine)();     
  7954.     Timer_Ticks    time;         
  7955.  
  7956.     ClientData    clientData;     
  7957.  
  7958.  
  7959.     Boolean    processed;     
  7960.  
  7961.  
  7962.     unsigned int interval;     
  7963.  
  7964.  
  7965. } Timer_QueueElement;
  7966.  
  7967.  
  7968.  
  7969.  
  7970.  
  7971. typedef struct {
  7972.     int        callback;     
  7973.     int        profile;     
  7974.     int        spurious;     
  7975.     int        schedule;     
  7976.     int        resched;     
  7977.     int        desched;     
  7978. } Timer_Statistics;
  7979.  
  7980. extern Timer_Statistics    timer_Statistics;
  7981. extern    Time        timer_UniversalApprox;
  7982. extern Sync_Semaphore     timer_ClockMutex;
  7983.  
  7984.  
  7985.  
  7986.  
  7987.  
  7988.  
  7989.  
  7990.  
  7991.  
  7992.  
  7993.  
  7994.  
  7995.  
  7996.  
  7997.  
  7998.  
  7999.  
  8000.  
  8001.  
  8002.  
  8003.  
  8004. extern void    Timer_ScheduleRoutine();
  8005. extern Boolean  Timer_DescheduleRoutine();
  8006.  
  8007. extern void Timer_GetTimeOfDay();
  8008. extern void Timer_GetRealTimeOfDay();
  8009. extern void Timer_GetRealTimeFromTicks();
  8010. extern void Timer_SetTimeOfDay();
  8011.  
  8012. extern void Timer_LockRegister();
  8013.  
  8014.  
  8015.  
  8016.  
  8017.  
  8018.  
  8019.  
  8020. extern void     Timer_TimerInit();
  8021. extern void     Timer_TimerStart();
  8022. extern void    Timer_TimerInactivate();
  8023.  
  8024.  
  8025.  
  8026.  
  8027.  
  8028. extern    void    Timer_TimerServiceInterrupts();
  8029.  
  8030.  
  8031.  
  8032.  
  8033. extern void     Timer_TimerGetInfo();
  8034. extern void    Timer_DumpQueue();
  8035. extern void    Timer_DumpStats();
  8036.  
  8037.  
  8038. # 36 "/sprite/lib/include/kernel/proc.h" 2
  8039.  
  8040. # 1 "/sprite/lib/include/kernel/sig.h" 1
  8041.  
  8042.  
  8043.  
  8044.  
  8045.  
  8046.  
  8047.  
  8048.  
  8049.  
  8050.  
  8051.  
  8052.  
  8053.  
  8054. # 98 "/sprite/lib/include/kernel/sig.h"
  8055.  
  8056.  
  8057. # 37 "/sprite/lib/include/kernel/proc.h" 2
  8058.  
  8059. # 1 "/sprite/lib/include/sun4.md/kernel/mach.h" 1
  8060.  
  8061.  
  8062.  
  8063.  
  8064.  
  8065.  
  8066.  
  8067.  
  8068.  
  8069.  
  8070.  
  8071.  
  8072.  
  8073.  
  8074.  
  8075.  
  8076.  
  8077. # 325 "/sprite/lib/include/sun4.md/kernel/mach.h"
  8078.  
  8079. # 38 "/sprite/lib/include/kernel/proc.h" 2
  8080.  
  8081.  
  8082.  
  8083.  
  8084.  
  8085.  
  8086.  
  8087.  
  8088.  
  8089.  
  8090.  
  8091.  
  8092.  
  8093.  
  8094.  
  8095.  
  8096.  
  8097.  
  8098.  
  8099.  
  8100.  
  8101.  
  8102.  
  8103.  
  8104.  
  8105.  
  8106.  
  8107.  
  8108.  
  8109.  
  8110.  
  8111.  
  8112.  
  8113.  
  8114.  
  8115.  
  8116.  
  8117.  
  8118.  
  8119.  
  8120.  
  8121.  
  8122.  
  8123.  
  8124.  
  8125.  
  8126.  
  8127. typedef struct {
  8128.     unsigned int    interval;     
  8129.  
  8130.     ClientData        clientData;     
  8131.     ClientData        token;         
  8132. } Proc_CallInfo;
  8133.  
  8134.  
  8135.  
  8136.  
  8137.  
  8138. typedef struct {
  8139.     int            refCount;     
  8140.  
  8141.     int            size;         
  8142.     struct ProcEnvironVar *varArray;     
  8143. } Proc_EnvironInfo;
  8144.  
  8145.  
  8146.  
  8147.  
  8148.  
  8149.  
  8150.  
  8151.  
  8152.  
  8153.  
  8154. typedef struct {
  8155.     List_Links links;             
  8156.     struct Proc_ControlBlock *procPtr;     
  8157. } Proc_PCBLink;
  8158.  
  8159.  
  8160.  
  8161.  
  8162.  
  8163.  
  8164.  
  8165.  
  8166.  
  8167. typedef union {
  8168.     Timer_Ticks    ticks;     
  8169.     Time    time;     
  8170. } Proc_Time;
  8171.  
  8172. typedef struct {
  8173.     int        type;         
  8174.     Address    lockPtr;     
  8175. } Proc_LockStackElement;
  8176.  
  8177.  
  8178.  
  8179.  
  8180.  
  8181.  
  8182.  
  8183.  
  8184. typedef struct Proc_ControlBlock {
  8185.     List_Links    links;         
  8186.  
  8187.     int        processor;     
  8188.  
  8189.  
  8190.  
  8191.     Proc_State    state;         
  8192.  
  8193.  
  8194.  
  8195.     int        genFlags;     
  8196.  
  8197.     int        syncFlags;     
  8198.     int        schedFlags;     
  8199.     int        exitFlags;     
  8200.  
  8201.  
  8202.     List_Links        childListHdr;     
  8203.     List_Links        *childList;     
  8204.     Proc_PCBLink    siblingElement;     
  8205.  
  8206.     Proc_PCBLink    familyElement;     
  8207.  
  8208.  
  8209.      
  8210.  
  8211.  
  8212.  
  8213.  
  8214.  
  8215.  
  8216.  
  8217.  
  8218.  
  8219.  
  8220.  
  8221.     Proc_PID    processID;         
  8222.  
  8223.  
  8224.  
  8225.     Proc_PID    parentID;         
  8226.  
  8227.     int        familyID;         
  8228.  
  8229.     int        userID;             
  8230.  
  8231.  
  8232.     int        effectiveUserID;     
  8233.  
  8234.  
  8235.      
  8236.  
  8237.  
  8238.  
  8239.  
  8240.  
  8241.  
  8242.  
  8243.  
  8244.  
  8245.  
  8246.     int         event;          
  8247.     Proc_PCBLink eventHashChain;  
  8248.  
  8249.      
  8250.  
  8251.  
  8252.  
  8253.     Sync_Condition    waitCondition;
  8254.     Sync_Condition    lockedCondition;
  8255.  
  8256.      
  8257.  
  8258.  
  8259.  
  8260.  
  8261.     int            waitToken;
  8262.  
  8263.      
  8264.  
  8265.  
  8266.  
  8267.  
  8268.  
  8269.  
  8270.  
  8271.  
  8272.     int      billingRate;     
  8273.  
  8274.     unsigned int recentUsage;     
  8275.     unsigned int weightedUsage;     
  8276.  
  8277.     unsigned int unweightedUsage;  
  8278.  
  8279.  
  8280.      
  8281.  
  8282.  
  8283.  
  8284.  
  8285.  
  8286.  
  8287.  
  8288.     Proc_Time kernelCpuUsage;     
  8289.     Proc_Time userCpuUsage;     
  8290.  
  8291.     Proc_Time childKernelCpuUsage;     
  8292.  
  8293.     Proc_Time childUserCpuUsage;     
  8294.  
  8295.     int     numQuantumEnds;         
  8296.  
  8297.  
  8298.     int        numWaitEvents;         
  8299.  
  8300.  
  8301.     unsigned int schedQuantumTicks;     
  8302.  
  8303.  
  8304.  
  8305.      
  8306.  
  8307.  
  8308.  
  8309.  
  8310.  
  8311.  
  8312.  
  8313.  
  8314.     struct    Mach_State    *machStatePtr;
  8315.  
  8316.  
  8317.      
  8318.  
  8319.  
  8320.  
  8321.  
  8322.  
  8323.  
  8324.     struct    Vm_ProcInfo    *vmPtr;
  8325.  
  8326.      
  8327.  
  8328.  
  8329.  
  8330.  
  8331.  
  8332.  
  8333.  
  8334.     struct Fs_ProcessState    *fsPtr;
  8335.  
  8336.      
  8337.  
  8338.  
  8339.  
  8340.  
  8341.  
  8342.  
  8343.  
  8344.     int    termReason;         
  8345.  
  8346.                  
  8347.     int    termStatus;         
  8348.  
  8349.                  
  8350.     int    termCode;         
  8351.                  
  8352.  
  8353.  
  8354.      
  8355.  
  8356.  
  8357.  
  8358.  
  8359.  
  8360.  
  8361.  
  8362.     int        sigHoldMask;         
  8363.     int        sigPendingMask;         
  8364.                          
  8365.  
  8366.     int        sigActions[        32 ];
  8367.                          
  8368.  
  8369.     int        sigMasks[        32 ];
  8370.                      
  8371.  
  8372.     int        sigCodes[        32 ];
  8373.     int        sigFlags;         
  8374.  
  8375.     int        oldSigHoldMask;         
  8376.  
  8377.  
  8378.      
  8379.  
  8380.  
  8381.  
  8382.  
  8383.  
  8384.     struct ProcIntTimerInfo    *timerArray;
  8385.  
  8386.      
  8387.  
  8388.  
  8389.  
  8390.  
  8391.  
  8392.  
  8393.     int            peerHostID;     
  8394.  
  8395.  
  8396.     Proc_PID        peerProcessID;      
  8397.  
  8398.     struct Proc_ControlBlock
  8399.                  *rpcClientProcess;     
  8400.  
  8401.  
  8402.  
  8403.      
  8404.  
  8405.  
  8406.  
  8407.  
  8408.  
  8409.  
  8410.  
  8411.      
  8412.  
  8413.  
  8414.     Proc_EnvironInfo    *environPtr;
  8415.  
  8416.      
  8417.  
  8418.  
  8419.     char    *argString;
  8420.  
  8421.  
  8422.  
  8423.  
  8424.  
  8425.  
  8426.  
  8427.  
  8428.  
  8429.  
  8430.      
  8431.  
  8432.  
  8433.  
  8434.  
  8435.  
  8436.      Sync_Semaphore        lockInfo;
  8437.  
  8438.  
  8439.      
  8440.  
  8441.  
  8442.  
  8443.  
  8444.  
  8445.  
  8446.     ReturnStatus (**kcallTable)();     
  8447.  
  8448.  
  8449.  
  8450.  
  8451.  
  8452.     int specialHandling;         
  8453.  
  8454.  
  8455.  
  8456.  
  8457.  
  8458.      
  8459.  
  8460.  
  8461.  
  8462.  
  8463.  
  8464.  
  8465.  
  8466.      short *Prof_Buffer;     
  8467.  
  8468.      int Prof_BufferSize;    
  8469.      int Prof_Offset;        
  8470.      int Prof_Scale;         
  8471.  
  8472.      int Prof_PC;            
  8473.  
  8474.  
  8475.      
  8476.  
  8477.  
  8478.  
  8479.     Address    remoteExecBuffer;      
  8480.  
  8481.     Address    migCmdBuffer;          
  8482.  
  8483.     int        migCmdBufSize;          
  8484.  
  8485.  
  8486. } Proc_ControlBlock;
  8487.  
  8488.  
  8489.  
  8490.  
  8491.  
  8492.  
  8493.  
  8494.  
  8495.  
  8496.  
  8497.  
  8498.  
  8499.  
  8500.  
  8501.  
  8502.  
  8503.  
  8504.  
  8505.  
  8506.  
  8507.  
  8508.  
  8509.  
  8510.  
  8511.  
  8512.  
  8513.  
  8514.  
  8515.  
  8516.  
  8517.  
  8518.  
  8519.  
  8520. extern Proc_ControlBlock  **proc_RunningProcesses;
  8521.  
  8522.  
  8523.  
  8524.  
  8525.  
  8526.  
  8527.  
  8528.  
  8529. extern Proc_ControlBlock **proc_PCBTable;
  8530.  
  8531.  
  8532.  
  8533.  
  8534.  
  8535.  
  8536. extern int proc_MaxNumProcesses;
  8537.  
  8538.  
  8539.  
  8540.  
  8541. extern Boolean proc_RefuseMigrations;
  8542.  
  8543.  
  8544.  
  8545.  
  8546.  
  8547.  
  8548.  
  8549.  
  8550.  
  8551.  
  8552.  
  8553.  
  8554.  
  8555.  
  8556. # 522 "/sprite/lib/include/kernel/proc.h"
  8557.  
  8558.  
  8559.  
  8560.  
  8561.  
  8562.  
  8563.  
  8564.  
  8565.  
  8566.  
  8567.  
  8568.  
  8569.  
  8570.  
  8571.  
  8572.  
  8573.  
  8574.  
  8575.  
  8576.  
  8577.  
  8578.  
  8579.  
  8580.  
  8581.  
  8582.  
  8583.  
  8584.  
  8585.  
  8586.  
  8587. # 562 "/sprite/lib/include/kernel/proc.h"
  8588.  
  8589.  
  8590.  
  8591.  
  8592. extern void              Proc_Init();
  8593. extern void              Proc_InitMainProc();
  8594. extern ReturnStatus        Proc_NewProc();
  8595. extern void            ProcStartUserProc();
  8596. extern void            Proc_ExitInt();
  8597. extern void            Proc_Exit();
  8598. extern void            Proc_DetachInt();
  8599. extern ReturnStatus        Proc_Detach();
  8600. extern void            Proc_InformParent();    
  8601. extern void            Proc_Reaper();
  8602. extern void            Proc_NotifyMigratedWaiters();
  8603. extern void            Proc_PutOnDebugList();
  8604. extern void            Proc_SuspendProcess();
  8605. extern void            Proc_ResumeProcess();
  8606. extern int            Proc_ExecEnv();
  8607. extern int            Proc_RemoteExec();
  8608. extern ReturnStatus         Proc_GetHostIDs();
  8609.  
  8610.  
  8611. extern ReturnStatus        Proc_EvictForeignProcs();
  8612. extern ReturnStatus        Proc_EvictProc();
  8613. extern Boolean            Proc_IsMigratedProc();
  8614. extern void            Proc_FlagMigration();
  8615. extern void            Proc_MigrateTrap();
  8616. extern void            Proc_OkayToMigrate();
  8617. extern ReturnStatus        Proc_MigSendUserInfo();
  8618. extern ReturnStatus        Proc_DoRemoteCall();
  8619. extern void            Proc_SetEffectiveProc();
  8620. extern Proc_ControlBlock *    Proc_GetEffectiveProc();
  8621. extern ReturnStatus        Proc_ByteCopy();
  8622. extern ReturnStatus        Proc_MakeStringAccessible();
  8623. extern void            Proc_MakeUnaccessible();
  8624. extern void            Proc_MigrateStartTracing();
  8625. extern void            Proc_DestroyMigratedProc();
  8626. extern void            Proc_NeverMigrate();
  8627. extern ReturnStatus        Proc_MigGetStats();
  8628. extern ReturnStatus        Proc_MigZeroStats();
  8629. extern   void            Proc_MigAddToCounter();
  8630.  
  8631. extern void            ProcInitMainEnviron();
  8632. extern void            ProcSetupEnviron();
  8633. extern void            ProcDecEnvironRefCount();
  8634.  
  8635. extern void            Proc_SetServerPriority();
  8636.  
  8637. extern    int            Proc_KillAllProcesses();
  8638. extern    void            Proc_WakeupAllProcesses();
  8639.  
  8640. extern    void            Proc_Unlock();
  8641. extern    void            Proc_Lock();
  8642. extern    Proc_ControlBlock    *Proc_LockPID();
  8643. extern    ReturnStatus        Proc_LockFamily();
  8644. extern    void            Proc_UnlockFamily();
  8645. extern    void            Proc_TakeOffDebugList();
  8646. extern    Boolean            Proc_HasPermission();
  8647.  
  8648. extern    void            Proc_ServerInit();
  8649. extern    void            Proc_CallFunc();
  8650. extern    void            Proc_CancelCallFunc();
  8651. extern    ClientData        Proc_CallFuncAbsTime();
  8652. extern    void            Proc_ServerProc();
  8653. extern    int            proc_NumServers;
  8654.  
  8655. extern  ReturnStatus        Proc_Dump();
  8656. extern  void            Proc_DumpPCB();
  8657.  
  8658. extern  void            Proc_RemoveFromLockStack();
  8659. extern  void            Proc_PushLockStack();
  8660.  
  8661.  
  8662.  
  8663.  
  8664.  
  8665.  
  8666.  
  8667.  
  8668. extern ReturnStatus        Proc_SetEnvironStub();
  8669. extern ReturnStatus        Proc_UnsetEnvironStub();
  8670. extern ReturnStatus        Proc_GetEnvironVarStub();
  8671. extern ReturnStatus        Proc_GetEnvironRangeStub();
  8672. extern ReturnStatus        Proc_InstallEnvironStub();
  8673. extern ReturnStatus        Proc_CopyEnvironStub();
  8674. extern int                      Proc_KernExec();
  8675.  
  8676.  
  8677. # 62 "/sprite/lib/include/kernel/sync.h" 2
  8678.  
  8679. # 1 "/sprite/lib/include/kernel/syncLock.h" 1
  8680.  
  8681.  
  8682.  
  8683.  
  8684.  
  8685.  
  8686.  
  8687.  
  8688.  
  8689.  
  8690.  
  8691.  
  8692.  
  8693.  
  8694.  
  8695.  
  8696.  
  8697.  
  8698.  
  8699.  
  8700. # 164 "/sprite/lib/include/kernel/syncLock.h"
  8701.  
  8702.  
  8703. # 63 "/sprite/lib/include/kernel/sync.h" 2
  8704.  
  8705. # 1 "/sprite/lib/include/kernel/sys.h" 1
  8706.  
  8707.  
  8708.  
  8709.  
  8710.  
  8711.  
  8712.  
  8713.  
  8714.  
  8715.  
  8716.  
  8717.  
  8718. # 66 "/sprite/lib/include/kernel/sys.h"
  8719.  
  8720. # 64 "/sprite/lib/include/kernel/sync.h" 2
  8721.  
  8722. # 1 "/sprite/lib/include/sun4.md/kernel/mach.h" 1
  8723.  
  8724.  
  8725.  
  8726.  
  8727.  
  8728.  
  8729.  
  8730.  
  8731.  
  8732.  
  8733.  
  8734.  
  8735.  
  8736.  
  8737.  
  8738.  
  8739.  
  8740. # 325 "/sprite/lib/include/sun4.md/kernel/mach.h"
  8741.  
  8742. # 65 "/sprite/lib/include/kernel/sync.h" 2
  8743.  
  8744.  
  8745.  
  8746.  
  8747.  
  8748.  
  8749.  
  8750.  
  8751.  
  8752.  
  8753.  
  8754.  
  8755.  
  8756.  
  8757.  
  8758.  
  8759.  
  8760.  
  8761.  
  8762.  
  8763.  
  8764.  
  8765.  
  8766.  
  8767.  
  8768.  
  8769.  
  8770.  
  8771.  
  8772.  
  8773.  
  8774.  
  8775.  
  8776.  
  8777.  
  8778.  
  8779. typedef struct Sync_Instrument {
  8780.     int numWakeups;         
  8781.     int numWakeupCalls;         
  8782.     int numSpuriousWakeups;     
  8783.     int numLocks;         
  8784.     int numUnlocks;         
  8785.     int spinCount[60 +1];  
  8786.     int sched_MutexMiss;     
  8787.  
  8788.  
  8789.     char pad[    0x10 ];
  8790.  
  8791. } Sync_Instrument;
  8792.  
  8793.  
  8794.  
  8795.  
  8796.  
  8797.  
  8798. typedef struct Sync_RegElement {
  8799.     List_Links         links;             
  8800.     int            hit;             
  8801.     int            miss;             
  8802.     int            type;             
  8803.     char        *name;             
  8804.     Sync_LockClass    class;             
  8805.     int            priorCount;         
  8806.     int            priorTypes[1 ];  
  8807.     int            activeLockCount;     
  8808.     List_Links        activeLocks;         
  8809.     int            deadLockCount;         
  8810. } Sync_RegElement;
  8811.  
  8812.  
  8813.  
  8814.  
  8815. typedef struct semid_ds Sync_SysVSem;
  8816.  
  8817.  
  8818.  
  8819.  
  8820.  
  8821.  
  8822. typedef struct {
  8823.     List_Links    links;         
  8824.     int        hostID;         
  8825.     Proc_PID    pid;         
  8826.     int        waitToken;     
  8827. } Sync_RemoteWaiter;
  8828.  
  8829.  
  8830.  
  8831.  
  8832.  
  8833.  
  8834.  
  8835.  
  8836.  
  8837.  
  8838.     
  8839. extern Sync_Instrument     sync_Instrument[    1 ];
  8840. extern Sync_Instrument    *sync_InstrumentPtr[    1 ];
  8841. extern int sync_BusyWaits;
  8842.  
  8843. extern     void         Sync_Init();
  8844.  
  8845. extern     void         Sync_WakeupProcess();
  8846. extern     void         Sync_EventWakeup();
  8847. extern     void         Sync_WakeWaitingProcess();
  8848. extern     void         Sync_UnlockAndSwitch();
  8849.  
  8850. extern     Boolean     Sync_SlowMasterWait();
  8851. extern     Boolean     Sync_SlowWait();
  8852. extern     Boolean     Sync_EventWait();
  8853. extern     Boolean     Sync_WaitTime();
  8854. extern     Boolean     Sync_WaitTimeInTicks();
  8855. extern     Boolean     Sync_WaitTimeInterval();
  8856.  
  8857. extern     Boolean     Sync_ProcWait();
  8858. extern     void         Sync_ProcWakeup();
  8859. extern     void         Sync_GetWaitToken();
  8860. extern     void         Sync_SetWaitToken();
  8861. extern     ReturnStatus     Sync_RemoteNotify();
  8862. extern     ReturnStatus     Sync_RemoteNotifyStub();
  8863.     
  8864. extern     ReturnStatus     Sync_SlowLockStub();
  8865. extern     ReturnStatus     Sync_SlowWaitStub();
  8866. extern     ReturnStatus     Sync_SlowBroadcastStub();
  8867.  
  8868. extern     void         Sync_PrintStat();
  8869.  
  8870. extern    void        Sync_LockStatInit();
  8871. extern    void        Sync_AddPriorInt();
  8872. extern    void        SyncDeleteCurrentInt();
  8873. extern     void        SyncMergePriorInt();
  8874. extern    void        Sync_RegisterInt();
  8875. extern    void        Sync_CheckoutInt();
  8876. extern    void        Sync_PrintLockStats();
  8877.  
  8878. extern    ReturnStatus    Sync_SemgetStub();
  8879. extern    ReturnStatus    Sync_SemopStub();
  8880. extern    ReturnStatus    Sync_SemctlStub();
  8881.  
  8882. extern Sync_RegElement  *regQueuePtr;
  8883.  
  8884.  
  8885.  
  8886.  
  8887.  
  8888.  
  8889.  
  8890.  
  8891.  
  8892.  
  8893.  
  8894.  
  8895.  
  8896.  
  8897.  
  8898.  
  8899.  
  8900.  
  8901.  
  8902.  
  8903.  
  8904.  
  8905.  
  8906.  
  8907.  
  8908.  
  8909.  
  8910.  
  8911.  
  8912.  
  8913.  
  8914.  
  8915.  
  8916.  
  8917.  
  8918.  
  8919.  
  8920.  
  8921.  
  8922.  
  8923.  
  8924.  
  8925. # 260 "/sprite/lib/include/kernel/sync.h"
  8926.  
  8927. # 319 "/sprite/lib/include/kernel/sync.h"
  8928.  
  8929.  
  8930.  
  8931.  
  8932.  
  8933.  
  8934.  
  8935.  
  8936.  
  8937.  
  8938.  
  8939.  
  8940.  
  8941.  
  8942.  
  8943.  
  8944.  
  8945.  
  8946.  
  8947.  
  8948.  
  8949.  
  8950.  
  8951.  
  8952. # 355 "/sprite/lib/include/kernel/sync.h"
  8953.  
  8954.  
  8955.  
  8956.  
  8957.  
  8958.  
  8959.  
  8960.  
  8961.  
  8962.  
  8963.  
  8964.  
  8965.  
  8966.  
  8967.  
  8968.  
  8969.  
  8970.  
  8971.  
  8972.  
  8973.  
  8974.  
  8975.  
  8976.  
  8977.  
  8978.  
  8979.  
  8980.  
  8981.  
  8982.  
  8983.  
  8984.  
  8985.  
  8986.  
  8987.  
  8988.  
  8989.  
  8990.  
  8991.  
  8992.  
  8993.  
  8994.  
  8995.  
  8996.  
  8997.  
  8998.  
  8999.  
  9000.  
  9001.  
  9002.  
  9003.  
  9004.  
  9005.  
  9006.  
  9007.  
  9008.  
  9009.  
  9010.  
  9011.  
  9012.  
  9013.  
  9014.  
  9015.  
  9016.  
  9017.  
  9018.  
  9019.  
  9020.  
  9021.  
  9022.  
  9023.  
  9024.  
  9025.  
  9026.  
  9027.  
  9028.  
  9029.  
  9030.  
  9031.  
  9032.  
  9033.  
  9034.  
  9035.  
  9036.  
  9037.  
  9038.  
  9039.  
  9040.  
  9041.  
  9042.  
  9043.  
  9044.  
  9045.  
  9046.  
  9047.  
  9048.  
  9049.  
  9050.  
  9051.  
  9052.  
  9053.  
  9054.  
  9055.  
  9056.  
  9057.  
  9058.  
  9059.  
  9060.  
  9061.  
  9062.  
  9063.  
  9064.  
  9065.  
  9066.  
  9067.  
  9068.  
  9069.  
  9070.  
  9071.  
  9072.  
  9073.  
  9074.  
  9075.  
  9076.  
  9077.  
  9078.  
  9079.  
  9080.  
  9081.  
  9082.  
  9083.  
  9084.  
  9085.  
  9086.  
  9087.  
  9088.  
  9089.  
  9090.  
  9091.  
  9092.  
  9093.  
  9094.  
  9095.  
  9096.  
  9097.  
  9098.  
  9099.  
  9100.  
  9101.  
  9102.  
  9103.  
  9104.  
  9105.  
  9106.  
  9107.  
  9108.  
  9109.  
  9110.  
  9111.  
  9112.  
  9113.  
  9114.  
  9115.  
  9116.  
  9117.  
  9118.  
  9119.  
  9120.  
  9121.  
  9122.  
  9123.  
  9124.  
  9125.  
  9126.  
  9127.  
  9128.  
  9129.  
  9130.  
  9131.  
  9132.  
  9133.  
  9134.  
  9135.  
  9136.  
  9137.  
  9138.  
  9139.  
  9140.  
  9141.  
  9142.  
  9143.  
  9144.  
  9145.  
  9146. # 557 "/sprite/lib/include/kernel/sync.h"
  9147.  
  9148. # 569 "/sprite/lib/include/kernel/sync.h"
  9149.  
  9150.  
  9151.  
  9152.  
  9153.  
  9154.  
  9155.  
  9156.  
  9157.  
  9158.  
  9159.  
  9160.  
  9161.  
  9162.  
  9163.  
  9164.  
  9165.  
  9166.  
  9167.  
  9168.  
  9169.  
  9170.  
  9171.  
  9172.  
  9173.  
  9174.  
  9175.  
  9176.  
  9177.  
  9178.  
  9179.  
  9180.  
  9181.  
  9182.  
  9183.  
  9184.  
  9185.  
  9186.  
  9187.  
  9188.  
  9189.  
  9190.  
  9191.  
  9192.  
  9193.  
  9194.  
  9195.  
  9196.  
  9197.  
  9198.  
  9199.  
  9200.  
  9201.  
  9202.  
  9203.  
  9204.  
  9205.  
  9206.  
  9207.  
  9208.  
  9209.  
  9210.  
  9211.  
  9212.  
  9213.  
  9214.  
  9215.  
  9216.  
  9217.  
  9218.  
  9219.  
  9220.  
  9221.  
  9222.  
  9223.  
  9224.  
  9225.  
  9226.  
  9227.  
  9228.  
  9229.  
  9230.  
  9231. # 660 "/sprite/lib/include/kernel/sync.h"
  9232.  
  9233. # 670 "/sprite/lib/include/kernel/sync.h"
  9234.  
  9235.  
  9236.  
  9237.  
  9238.  
  9239.  
  9240.  
  9241.  
  9242.  
  9243.  
  9244.  
  9245.  
  9246.  
  9247.  
  9248.  
  9249.  
  9250.  
  9251.  
  9252.  
  9253.  
  9254.  
  9255.  
  9256.  
  9257.  
  9258.  
  9259.  
  9260.  
  9261.  
  9262.  
  9263.  
  9264.  
  9265.  
  9266.  
  9267.  
  9268.  
  9269.  
  9270.  
  9271.  
  9272.  
  9273.  
  9274.  
  9275.  
  9276.  
  9277.  
  9278.  
  9279.  
  9280.  
  9281.  
  9282.  
  9283.  
  9284.  
  9285.  
  9286.  
  9287.  
  9288.  
  9289.  
  9290.  
  9291. # 736 "/sprite/lib/include/kernel/sync.h"
  9292.  
  9293.  
  9294.  
  9295.  
  9296.  
  9297.  
  9298.  
  9299.  
  9300.  
  9301.  
  9302.  
  9303.  
  9304.  
  9305.  
  9306.  
  9307.  
  9308.  
  9309.  
  9310.  
  9311.  
  9312.  
  9313.  
  9314.  
  9315.  
  9316. # 769 "/sprite/lib/include/kernel/sync.h"
  9317.  
  9318.  
  9319.  
  9320.  
  9321.  
  9322.  
  9323.  
  9324.  
  9325.  
  9326.  
  9327.  
  9328.  
  9329.  
  9330.  
  9331.  
  9332.  
  9333.  
  9334.  
  9335.  
  9336.  
  9337.  
  9338.  
  9339.  
  9340.  
  9341.  
  9342.  
  9343.  
  9344.  
  9345.  
  9346.  
  9347.  
  9348.  
  9349.  
  9350.  
  9351.  
  9352.  
  9353.  
  9354.  
  9355.  
  9356.  
  9357.  
  9358.  
  9359.  
  9360.  
  9361.  
  9362.  
  9363.  
  9364.  
  9365.  
  9366.  
  9367.  
  9368.  
  9369.  
  9370.  
  9371.  
  9372.  
  9373.  
  9374.  
  9375.  
  9376.  
  9377.  
  9378.  
  9379.  
  9380.  
  9381.  
  9382.  
  9383.  
  9384.  
  9385.  
  9386.  
  9387.  
  9388.  
  9389.  
  9390.  
  9391.  
  9392.  
  9393.  
  9394.  
  9395.  
  9396.  
  9397.  
  9398.  
  9399.  
  9400.  
  9401.  
  9402.  
  9403.  
  9404.  
  9405.  
  9406.  
  9407.  
  9408.  
  9409.  
  9410.  
  9411.  
  9412.  
  9413.  
  9414.  
  9415.  
  9416.  
  9417.  
  9418.  
  9419.  
  9420.  
  9421.  
  9422.  
  9423.  
  9424.  
  9425.  
  9426.  
  9427.  
  9428.  
  9429.  
  9430.  
  9431.  
  9432.  
  9433.  
  9434.  
  9435.  
  9436.  
  9437.  
  9438.  
  9439.  
  9440.  
  9441.  
  9442.  
  9443.  
  9444.  
  9445.  
  9446.  
  9447.  
  9448.  
  9449.  
  9450.  
  9451.  
  9452.  
  9453.  
  9454.  
  9455.  
  9456.  
  9457.  
  9458.  
  9459.  
  9460.  
  9461.  
  9462.  
  9463.  
  9464.  
  9465.  
  9466.  
  9467.  
  9468.  
  9469.  
  9470.  
  9471.  
  9472.  
  9473.  
  9474.  
  9475.  
  9476.  
  9477.  
  9478.  
  9479.  
  9480.  
  9481.  
  9482.  
  9483.  
  9484.  
  9485.  
  9486.  
  9487.  
  9488.  
  9489.  
  9490.  
  9491.  
  9492.  
  9493.  
  9494.  
  9495.  
  9496.  
  9497.  
  9498.  
  9499.  
  9500.  
  9501.  
  9502.  
  9503.  
  9504.  
  9505.  
  9506.  
  9507.  
  9508.  
  9509.  
  9510.  
  9511.  
  9512.  
  9513.  
  9514.  
  9515.  
  9516.  
  9517.  
  9518.  
  9519.  
  9520.  
  9521.  
  9522.  
  9523.  
  9524.  
  9525.  
  9526.  
  9527.  
  9528.  
  9529.  
  9530.  
  9531.  
  9532.  
  9533. # 26 "/sprite/lib/include/kernel/net.h" 2
  9534.  
  9535.  
  9536.  
  9537.  
  9538.  
  9539.  
  9540.  
  9541.  
  9542.  
  9543.  
  9544.  
  9545.  
  9546.  
  9547.  
  9548.  
  9549.  
  9550.  
  9551.  
  9552.  
  9553. typedef struct {
  9554.     Address        bufAddr;     
  9555.     int            length;         
  9556.     Sync_Semaphore    *mutexPtr;     
  9557.  
  9558.     Boolean        done;         
  9559. } Net_ScatterGather;
  9560.  
  9561.  
  9562.  
  9563.  
  9564.  
  9565. typedef struct {
  9566.     int    packetsRecvd;         
  9567.     int    packetsSent;         
  9568.     int    packetsOutput;         
  9569.     int broadRecvd;         
  9570.     int broadSent;         
  9571.     int others;             
  9572.     int overrunErrors;         
  9573.     int crcErrors;         
  9574.     int fcsErrors;         
  9575.     int frameErrors;         
  9576.     int rangeErrors;         
  9577.     int collisions;         
  9578.     int xmitCollisionDrop;     
  9579.  
  9580.     int    xmitPacketsDropped;     
  9581.     int    recvPacketsDropped;     
  9582.     int matches;         
  9583.     int recvAvgPacketSize;     
  9584.     int recvAvgLargeSize;     
  9585.     int recvAvgSmallSize;     
  9586.     int sentAvgPacketSize;     
  9587.     int sentAvgLargeSize;     
  9588.     int sentAvgSmallSize;     
  9589.     int    bytesSent;         
  9590.     int    bytesReceived;         
  9591. } Net_EtherStats;
  9592.  
  9593.  
  9594.  
  9595.  
  9596. extern    Net_EtherStats    net_EtherStats;
  9597.  
  9598. extern    void    Net_Init();
  9599. extern  void    Net_Bin();
  9600. extern    void    Net_Reset();
  9601. extern    void    Net_Input();
  9602. extern    ReturnStatus    Net_Output();
  9603. extern    void    Net_OutputRawEther();
  9604. extern    void    Net_RecvPoll();
  9605. extern    void    Net_EtherOutputSync();
  9606. extern    int    Net_Intr();
  9607. extern    void    Net_GatherCopy();
  9608.  
  9609. extern    ReturnStatus Net_InstallRouteStub();
  9610. extern    ReturnStatus Net_InstallRoute();
  9611. extern    void    Net_SpriteIDToName();
  9612. extern    char *    Net_SpriteIDToMachType();
  9613. extern    void    Net_RouteInit();
  9614. extern    void    Net_NameToAddr();
  9615. extern    void    Net_AddrToName();
  9616.  
  9617. extern Net_Route *Net_IDToRoute();
  9618. extern int     Net_AddrToID();
  9619.  
  9620. extern int Net_RouteMTU();
  9621. extern int Net_MaxProtoHdrSize();
  9622.  
  9623. extern Net_Route *Net_Arp();
  9624. extern int    Net_RevArp();
  9625.  
  9626. extern void    Net_HostPrint();     
  9627.  
  9628. extern void    Net_HdrDestString();
  9629.  
  9630.  
  9631. # 24 "Mig_GetAllInfo.c" 2
  9632.  
  9633. # 1 "/sprite/lib/include/errno.h" 1
  9634.  
  9635.  
  9636.  
  9637.  
  9638.  
  9639.  
  9640.  
  9641.  
  9642.  
  9643.  
  9644.  
  9645.  
  9646.  
  9647.  
  9648.  
  9649.  
  9650.  
  9651.  
  9652.  
  9653.  
  9654.  
  9655. extern int    errno;         
  9656.  
  9657. extern int    sys_nerr;     
  9658. extern char    *sys_errlist[];     
  9659.  
  9660.  
  9661.  
  9662.  
  9663.  
  9664.  
  9665.  
  9666.  
  9667.  
  9668.  
  9669.  
  9670.  
  9671.  
  9672.  
  9673.  
  9674.  
  9675.  
  9676.  
  9677.  
  9678.  
  9679.  
  9680.  
  9681.  
  9682.  
  9683.  
  9684.  
  9685.  
  9686.  
  9687.  
  9688.  
  9689.  
  9690.  
  9691.  
  9692.  
  9693.  
  9694.  
  9695.  
  9696.  
  9697.  
  9698.  
  9699.  
  9700.  
  9701.  
  9702.  
  9703.  
  9704.  
  9705.  
  9706.  
  9707.  
  9708.  
  9709.  
  9710.  
  9711.  
  9712.  
  9713.  
  9714.  
  9715.  
  9716.  
  9717.  
  9718.  
  9719.  
  9720.  
  9721.  
  9722.  
  9723.  
  9724.  
  9725.  
  9726.  
  9727.  
  9728.  
  9729.  
  9730.  
  9731.  
  9732.  
  9733.  
  9734.  
  9735.  
  9736.  
  9737.  
  9738.  
  9739.  
  9740. # 25 "Mig_GetAllInfo.c" 2
  9741.  
  9742.  
  9743. extern int errno;
  9744. extern char *strerror();
  9745. extern char *malloc();
  9746.  
  9747.  
  9748.  
  9749.  
  9750.  
  9751.  
  9752.  
  9753.  
  9754.  
  9755.  
  9756.  
  9757.  
  9758.  
  9759.  
  9760.  
  9761.  
  9762.  
  9763.  
  9764.  
  9765.  
  9766.  
  9767.  
  9768. int
  9769. Mig_GetAllInfo(infoPtr, numRecs)
  9770.     Mig_Info *infoPtr;         
  9771.     int numRecs;         
  9772. {
  9773.     Mig_InfoRequest request;
  9774.     static int init = 0;     
  9775.     static char *buffer;      
  9776.  
  9777.     static unsigned int bufSize; 
  9778.     int status;             
  9779.     int maxRecs = 20 ;     
  9780.     int obtained;         
  9781.     int got;             
  9782.     int nextHost;         
  9783.     int retry = 1;         
  9784.  
  9785.  
  9786.     if (mig_GlobalPdev < 0) {
  9787.     if (MigOpenPdev(1 ) < 0) {
  9788.         return(-1);
  9789.     }
  9790.     }
  9791.  
  9792.     if (!init) {
  9793.     init = 1;
  9794.     bufSize = 2 * sizeof(int) +  maxRecs * sizeof(Mig_Info);
  9795.     buffer = malloc(bufSize);
  9796.     if (buffer == (char *)      0 ) {
  9797.         errno =     12 ;
  9798.         init = 0;
  9799.         return(-1);
  9800.     }
  9801.     }
  9802.     nextHost = 1;
  9803.  
  9804.     for (obtained = 0; obtained < numRecs;) {
  9805.     request.numRecs = maxRecs;
  9806.     request.firstHost = nextHost;
  9807.  
  9808.     if (MigSetAlarm() < 0) {
  9809.         fprintf((&stdioErrFile) ,
  9810.             "Error setting alarm for contact with migd.\n");
  9811.         return(-1);
  9812.     }
  9813.     status = Fs_IOControl(mig_GlobalPdev,     (    ((1<<16)-1) +1) ,
  9814.                   sizeof(Mig_InfoRequest),
  9815.                   (char *) &request,
  9816.                   bufSize, buffer);
  9817.     if (MigClearAlarm() < 0) {
  9818.         fprintf((&stdioErrFile) ,
  9819.             "Error clearing alarm for contact with migd.\n");
  9820.     }
  9821.     if (status !=         0x00000000 ) {
  9822.         close(mig_GlobalPdev);
  9823.         mig_GlobalPdev = 0;
  9824.         if (retry == 0 || MigOpenPdev(1 ) < 0) {
  9825.         fprintf((&stdioErrFile) ,
  9826.                "Mig_GetAllInfo: error during ioctl to global master: %s\n",
  9827.                Stat_GetMsg(status));
  9828.         errno = Compat_MapCode(status);
  9829.         return(-1);
  9830.         }
  9831.         retry = 0;
  9832.         continue;
  9833.     }
  9834.     retry = 1;
  9835.     got = *((int *) buffer);
  9836.     if (got == 0) {
  9837.         break;
  9838.     }
  9839.     obtained += got;
  9840.     bcopy(buffer + 2 * sizeof(int), (char *) infoPtr,
  9841.           got * sizeof(Mig_Info));
  9842.     if (got < maxRecs) {
  9843.         break;
  9844.     }
  9845.     nextHost = infoPtr[got-1].hostID + 1;
  9846.     infoPtr += got;
  9847.     }
  9848.     
  9849.     return(obtained);
  9850.     
  9851. }
  9852.